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-11-01 00:21:48 | Medium | 2 |
| 2026-10-31 00:07:41 | Medium | 2 |
| 2026-10-30 00:29:30 | Medium | 2 |
| 2026-10-29 00:13:55 | Medium | 2 |
| 2026-10-28 00:06:54 | Medium | 2 |
| 2026-10-27 00:23:28 | Medium | 2 |
| 2026-10-26 00:12:40 | Medium | 2 |
| 2026-10-25 00:20:48 | Medium | 2 |
| 2026-10-24 00:14:55 | Medium | 2 |
| 2026-10-23 00:02:19 | Medium | 2 |
| 2026-10-22 00:13:10 | Medium | 2 |
| 2026-10-21 00:12:50 | Medium | 2 |
| 2026-10-20 00:10:31 | Medium | 2 |
| 2026-10-19 00:03:55 | Medium | 2 |
| 2026-10-18 00:06:55 | Medium | 2 |
| 2026-10-17 00:21:55 | Medium | 2 |
| 2026-10-16 00:12:47 | Medium | 2 |
| 2026-10-15 00:28:05 | Medium | 2 |
| 2026-10-14 00:06:47 | Medium | 2 |
| 2026-10-13 00:23:45 | Medium | 2 |