sonicthehedgehog2
Triggered rules
external_download_not_in_source
curl/wget fetches a URL on a non-allowlisted host that is not part of source=(), so it is not checksum-verified by makepkg.
-
PKGBUILD:30
wget "https://archive.org/download/data_20231229/Data.rsdk"
llm_review
The static rules found a suspicious pattern they could not resolve, so an AI model (anthropic/claude-4.6-sonnet-20260217) reviewed it and judged it HIGH (confidence 85%): This PKGBUILD downloads 'Data.rsdk' from archive.org during the package() phase without including it in source=() and without any checksum verification. The file is the proprietary game data for Sonic the Hedgehog 2 (a commercial Sega title), making this a piracy concern — the game data is being redistributed/fetched from an unofficial archive without authorization. Beyond piracy, the unverified runtime download of an executed/loaded game asset from an uncontrolled third-party host (archive.org item 'data_20231229') is a supply-chain risk: the file could be replaced or tampered with and would be installed silently. The combination of piracy (distributing commercial game data) and unverified external binary asset download warrants both the piracy flag and medium severity.
PKGBUILD
1 offending line(s) highlightedpkgname=sonicthehedgehog2
_pkgname=SonicTheHedgehog2
pkgver=1.0.3
pkgrel=1
pkgdesc="Sonic the Hedgehog 2 game powered by the rsdkv4 engine."
arch=('x86_64' 'aarch64' 'i686')
url="https://gitlab.com/linuxbombay/sonicthehedgehog2"
license=('GPL')
depends=('rsdkv4-bin' 'libogg' 'libvorbis' 'wget' 'sdl2' 'unzip' 'yad')
makedepends=('unzip')
source=("https://gitlab.com/linuxbombay/sonicthehedgehog2/-/archive/$pkgver/sonicthehedgehog2-$pkgver.tar.bz2")
sha256sums=('2918db8ac15f8c42d82dcc08336018a8fcba1671785f1cd95da3f7b0b0987166')
package() {
install -dm755 "$pkgdir/usr/bin"
install -dm775 "$pkgdir/usr/share/games/$_pkgname"
install -dm755 "$pkgdir/usr/share/pixmaps"
# Packaging files
# Check if Data.rsdk exists so it doesn't redownload the file when it doesn't need to.
FILE="/usr/share/games/$_pkgname/Data.rsdk"
if test -f "$FILE"
then
echo "$FILE exists skipping download."
cp -r "/usr/share/games/$_pkgname/Data.rsdk" "$pkgdir/usr/share/games/$_pkgname"
else
echo "$FILE does not exist, Starting download.."
cd $srcdir/sonicthehedgehog2-$pkgver
wget "https://archive.org/download/data_20231229/Data.rsdk"
fi
cd $srcdir/sonicthehedgehog2-$pkgver
cp "$srcdir/sonicthehedgehog2-$pkgver/sonic2.sh" "$pkgdir/usr/bin/sonic2"
cp -r ./ "$pkgdir/usr/share/games/$_pkgname"
cp sonic2.png "$pkgdir/usr/share/pixmaps"
# Desktop Entry
install -Dm644 "$srcdir/sonicthehedgehog2-$pkgver/$_pkgname.desktop" \
"$pkgdir/usr/share/applications/$_pkgname.desktop"
sed -i s%/usr/share%/opt% "$pkgdir/usr/share/applications/$_pkgname.desktop"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | HIGH | 2 |
| 2026-08-02 00:16:08 | HIGH | 2 |
| 2026-08-01 00:11:18 | HIGH | 2 |
| 2026-07-31 00:14:10 | HIGH | 2 |
| 2026-07-30 00:17:23 | HIGH | 2 |
| 2026-07-29 00:25:53 | HIGH | 2 |
| 2026-07-28 00:07:28 | HIGH | 2 |
| 2026-07-27 00:24:32 | HIGH | 2 |
| 2026-07-26 00:07:32 | HIGH | 2 |
| 2026-07-25 00:13:44 | HIGH | 2 |
| 2026-07-24 00:02:28 | HIGH | 2 |
| 2026-07-23 00:14:47 | HIGH | 2 |
| 2026-07-22 00:29:32 | HIGH | 2 |
| 2026-07-21 00:24:15 | HIGH | 2 |
| 2026-07-20 00:19:49 | HIGH | 2 |
| 2026-07-19 00:17:08 | HIGH | 2 |
| 2026-07-18 00:14:48 | HIGH | 2 |
| 2026-07-17 00:06:16 | HIGH | 2 |
| 2026-07-16 00:05:41 | HIGH | 2 |
| 2026-07-15 00:09:25 | HIGH | 2 |