yzkof-gm-arcade-international
The PKGBUILD downloads a prebuilt Windows executable (GM ARCADE.exe) from an Aliyun OSS bucket (xiaou-game.oss-cn-hangzhou.aliyuncs.com), which is a personal/unofficial cloud storage host rather than an official vendor release channel. The checksum is 'SKIP', so there is no integrity verification. The binary is then installed to /opt and executed via Wine. This is a genuine supply-chain concern: the OSS bucket owner could replace the zip at any time with a malicious payload, and there is no way to detect substitution. The pattern (prebuilt executable from unofficial personal host + no checksum) meets the medium threshold. It is not clearly malicious, but the risk is real and non-trivial.
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:12
source=($pkgname.zip::https://xiaou-game.oss-cn-hangzhou.aliyuncs.com/GM%20ARCADE_V09.zip)
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD downloads a prebuilt Windows executable (GM ARCADE.exe) from an Aliyun OSS bucket (xiaou-game.oss-cn-hangzhou.aliyuncs.com), which is a personal/unofficial cloud storage host rather than an official vendor release channel. The checksum is 'SKIP', so there is no integrity verification. The binary is then installed to /opt and executed via Wine. This is a genuine supply-chain concern: the OSS bucket owner could replace the zip at any time with a malicious payload, and there is no way to detect substitution. The pattern (prebuilt executable from unofficial personal host + no checksum) meets the medium threshold. It is not clearly malicious, but the risk is real and non-trivial.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Rafael Cruz <rafaelcruz at outlook dot com>
pkgname=yzkof-gm-arcade-international
pkgver=0.91
pkgrel=1
pkgdesc='Play retro games with or against any other player in the world.'
url='http://www.yzkof.com/'
arch=('any')
license=('custom')
depends=(wine lib32-mpg123)
makedepends=(gendesk rsync icoutils)
source=($pkgname.zip::https://xiaou-game.oss-cn-hangzhou.aliyuncs.com/GM%20ARCADE_V09.zip)
md5sums=('SKIP')
_tmpappfolder="GM ARCADE_V0.9"
_oldexecapp="GM ARCADE.exe"
_execapp="gm-arcade.exe"
_wineprefix="prefix"
prepare() {
msg "Preparing files..."
[ -f "$srcdir/$_tmpappfolder/$_execapp" ] && [ -f "$srcdir/$_tmpappfolder/$_oldexecapp" ] && rm "$srcdir/$_tmpappfolder/$_execapp"
# [ -f "$srcdir/$_tmpappfolder/$_oldexecapp" ] && mv "$srcdir/$_tmpappfolder/$_oldexecapp" "$srcdir/$_tmpappfolder/$_execapp"
msg "Generating icon..."
wrestool -x --output="$srcdir/icon.png" -t14 "$srcdir/$_tmpappfolder/${_oldexecapp}"
msg "Generating menu shortcut..."
gendesk -n -f --pkgname "$pkgname" --pkgdesc "$pkgdesc" --name "Yzkof GM Arcade International" --exec "env WINEPREFIX=\"$HOME/.$pkgname/$_wineprefix\" wine \"/opt/$pkgname/$_oldexecapp\""
}
package() {
install -dm755 $HOME/.$pkgname/
install -dm755 $pkgdir/opt/
install -Dm644 "$srcdir/icon.png" "$pkgdir/usr/share/pixmaps/$pkgname.png"
install -Dm644 "$srcdir/$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop"
msg "Copying files..."
#dont use variable below, bug on copy files
rsync -r --chmod=755 $srcdir/GM\ ARCADE_V0.9/* $pkgdir/opt/$pkgname/
chown -R $USER:users $pkgdir/opt/$pkgname/
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Medium | 2 |
| 2026-09-16 00:03:17 | Medium | 2 |
| 2026-09-15 00:25:31 | Medium | 2 |
| 2026-09-14 00:27:57 | Medium | 2 |
| 2026-09-13 00:19:54 | Medium | 2 |
| 2026-09-12 00:25:17 | Medium | 2 |
| 2026-09-11 00:19:22 | Medium | 2 |
| 2026-09-10 00:22:44 | Medium | 2 |
| 2026-09-09 00:04:09 | Medium | 2 |
| 2026-09-08 00:18:08 | Medium | 2 |
| 2026-09-07 00:30:15 | Medium | 2 |
| 2026-09-06 00:17:06 | Medium | 2 |
| 2026-09-05 00:16:27 | Medium | 2 |
| 2026-09-04 00:03:13 | Medium | 2 |
| 2026-09-03 00:15:47 | Medium | 2 |
| 2026-09-02 00:02:31 | Medium | 2 |
| 2026-09-01 00:11:19 | Medium | 2 |
| 2026-08-31 00:19:57 | Medium | 2 |
| 2026-08-30 00:04:14 | Medium | 2 |
| 2026-08-29 00:29:17 | Medium | 2 |