riichi-city-bin
Triggered rules
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:15
"icon.png::https://www.mahjong-jp.com/static/img/tool/download/role11/awaken_5.png" -
PKGBUILD:16
"riichi-city-bin-${pkgver}.zip::https://d3qgi0t347dz44.cloudfront.net/release/linuxpack/default_prod_Linux_${pkgver}.zip"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The package installs a prebuilt Unity game binary (Mahjong-JP.x86_64) plus native shared libraries (UnityPlayer.so, GameAssembly.so) downloaded from a CloudFront CDN URL (d3qgi0t347dz44.cloudfront.net). While CloudFront is a legitimate CDN service, this specific distribution URL is not a well-known official vendor release endpoint that can be independently verified against a canonical upstream source. The sha256sums are present and pin the download, which mitigates tampering risk somewhat, but the origin is an opaque CDN bucket rather than a verifiable official release page. The core concern is that prebuilt native binaries and shared libraries from an unverifiable host represent a real supply-chain risk — if the CDN bucket is compromised or the maintainer's pinned hash is updated to a malicious version, arbitrary code executes on the user's system. This is a textbook medium-severity supply-chain concern: executed native code from a non-canonical, non-publicly-auditable host. The icon is pure data (PNG) and the PDF license is data-only, so those are not concerns. The desktop file and install script are locally bundled. Overall: medium severity, no piracy or broken flags.
PKGBUILD
2 offending line(s) highlighted# Maintainer: _ <_@_._>
pkgname=riichi-city-bin
pkgver=2.2.1
pkgrel=1
pkgdesc="Competitive urban-style Japanese mahjong platform"
arch=('x86_64')
url="https://www.mahjong-jp.com"
license=('custom')
provides=('riichi-city')
conflicts=('riichi-city')
depends=('libsecret')
install="${pkgname}.install"
source=("riichi-city.desktop"
"icon.png::https://www.mahjong-jp.com/static/img/tool/download/role11/awaken_5.png"
"riichi-city-bin-${pkgver}.zip::https://d3qgi0t347dz44.cloudfront.net/release/linuxpack/default_prod_Linux_${pkgver}.zip"
"riichi-city-terms.pdf"
"riichi-city-bin.install")
sha256sums=('4f8204227f3f7548a277df299b634dc5e7e5dba4de5742c04abb5abaf49dc720'
'796cbe29af70f4b5067cbd224b66f717d910c6102addae526afc880baebf9a61'
'81389cdf0bf3e5261d49d54eab416b45bea3fa2fb82b040dbbab1837b496aef7'
'd1efb5dec4c56b1fd2d89b966e0096a2817767c3884a499ae33f116ab5f78fd5'
'67d96ee52403a766834e5ef33a862342bece9632fcd8eb4f1ab021094ca4b8d4')
package() {
install -Dm644 "${srcdir}/riichi-city.desktop" "${pkgdir}/usr/share/applications/riichi-city.desktop"
install -Dm644 "${srcdir}/icon.png" "${pkgdir}/usr/share/pixmaps/riichi-city.png"
install -Dm644 riichi-city-terms.pdf "$pkgdir/usr/share/licenses/$pkgname/LICENSE.pdf"
basedir="${pkgdir}/opt/riichi-city/"
install -d "${basedir}" "${pkgdir}/usr/bin"
cd "${srcdir}/default_prod_Linux_${pkgver}"
cp -a "Mahjong-JP_Data" "${basedir}/"
install -Dm755 Mahjong-JP.x86_64 "${basedir}/Mahjong-JP"
ln -s "/opt/riichi-city/Mahjong-JP" "${pkgdir}/usr/bin/riichi-city"
install -Dm644 UnityPlayer.so "${basedir}/UnityPlayer.so"
install -Dm644 GameAssembly.so "${basedir}/GameAssembly.so"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | MEDIUM | 2 |
| 2026-08-02 00:16:08 | MEDIUM | 2 |
| 2026-08-01 00:11:18 | MEDIUM | 2 |
| 2026-07-31 00:14:10 | MEDIUM | 2 |
| 2026-07-30 00:17:23 | MEDIUM | 2 |
| 2026-07-29 00:25:53 | MEDIUM | 2 |
| 2026-07-28 00:07:28 | MEDIUM | 2 |
| 2026-07-27 00:24:32 | MEDIUM | 2 |
| 2026-07-26 00:07:32 | MEDIUM | 2 |
| 2026-07-25 00:13:44 | MEDIUM | 2 |
| 2026-07-24 00:02:28 | MEDIUM | 2 |
| 2026-07-23 00:14:47 | MEDIUM | 2 |
| 2026-07-22 00:29:32 | MEDIUM | 2 |
| 2026-07-21 00:24:15 | MEDIUM | 2 |
| 2026-07-20 00:19:49 | MEDIUM | 2 |
| 2026-07-19 00:17:08 | MEDIUM | 2 |
| 2026-07-18 00:14:48 | MEDIUM | 2 |
| 2026-07-17 00:06:16 | MEDIUM | 2 |
| 2026-07-16 00:05:41 | MEDIUM | 2 |
| 2026-07-15 00:09:25 | MEDIUM | 2 |