jazzjackrabbit2
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/jazz-2-source/Jazz2-source.zip"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 85%): The PKGBUILD performs a runtime wget download of 'Jazz2-source.zip' from archive.org inside the package() function, outside of the source=() array. This means the file has no integrity check (no sha256sum verification), and archive.org is a mutable, community-editable host where content can be replaced. The downloaded ZIP is directly unzipped into the package installation directory, meaning any tampered or malicious content in that archive would be installed onto the user's system. Additionally, sha256sums=('SKIP') for the main source is sloppy. The wget/unzip of game data files from an unofficial archive host without integrity verification is a genuine supply-chain concern — not clearly malicious, but a real medium-severity risk. The package also lists 'wget', 'unzip', and 'yad' as runtime depends, suggesting the wrapper script may also perform downloads at runtime, compounding the concern.
PKGBUILD
1 offending line(s) highlightedpkgname=jazzjackrabbit2
_pkgname=JazzJackrabbit2
pkgver=1.0.3
pkgrel=1
pkgdesc="Jazz Jackrabbit 2 game powered by the jazz2."
arch=('x86_64' 'aarch64')
license=('GPL')
depends=('jazz2-native-bin' 'wget' 'unzip' 'yad')
makedepends=('unzip')
url="https://gitlab.com/jazzproject"
source=("https://gitlab.com/jazzproject/jazzjackrabbit2/jazz2/-/archive/$pkgver/jazz2-$pkgver.tar.bz2")
sha256sums=("SKIP")
package() {
install -dm755 "$pkgdir/usr/bin"
install -dm775 "$pkgdir/usr/share/games/$_pkgname"
install -dm755 "$pkgdir/usr/share/pixmaps"
# Packaging files
# Check if Sources folder exists so it doesn't redownload the file when it doesn't need to.
DIR="/usr/share/games/$_pkgname/Source"
if [ -d "$DIR" ]; then
echo "$DIR exists, skipping download."
cp -r "/usr/share/games/$_pkgname/Source" "$pkgdir/usr/share/games/$_pkgname"
else
echo "$DIR does not exist, starting download.."
cd "$srcdir/jazz2-$pkgver" || { echo "Failed to change directory"; exit 1; }
# Deleting any existing downloads
rm -rf Jazz2-source.zip
wget "https://archive.org/download/jazz-2-source/Jazz2-source.zip"
if [ $? -ne 0 ]; then
echo "Download failed"
exit 1
fi
unzip Jazz2-source.zip -d "$pkgdir/usr/share/games/$_pkgname"
fi
cp "$srcdir/jazz2-$pkgver/$pkgname" "$pkgdir/usr/bin"
cp -r "$srcdir/jazz2-$pkgver/$pkgname" "$pkgdir/usr/share/games/$_pkgname/"
cp -r "$srcdir/jazz2-$pkgver/$pkgname.png" "$pkgdir/usr/share/games/$_pkgname/"
cp "$srcdir/jazz2-$pkgver/$pkgname.png" "$pkgdir/usr/share/pixmaps"
# Desktop Entry
install -Dm644 "$srcdir/jazz2-$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 | 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 |