eggnogg

maintainer Pineapple · 0 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The PKGBUILD dynamically resolves a download URL at build time by POSTing to itch.io and parsing the JSON response, then downloads and installs a prebuilt 32-bit game binary from that resolved URL. The binary is not in source=() and has no checksum verification whatsoever. While itch.io is a legitimate game distribution platform and madgarden is the apparent upstream developer, the dynamic URL resolution bypasses Arch's reproducible/verifiable build model entirely: any compromise of the itch.io API endpoint or a MITM could substitute an arbitrary binary that gets installed and executed. The lack of any integrity check on the downloaded tarball or its contents is the core concern. This is a genuine supply-chain risk (unverified executed binary from a dynamically resolved host), consistent with MEDIUM severity.

Triggered rules

MEDIUM External download from an untrusted host, not in source=() 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:22 game_url=$(curl -s -XPOST "https://madgarden.itch.io/eggnogg/file/908?after_download_lightbox=true" | grep -Po '"url":.*?[^\\]",' | cut -c8- | rev | cut -c3- | rev | sed 's/\\\//\//g')
MEDIUM source=() URL on a non-standard host 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:11 source=('http://madgarden.net/junkz/madgarden/eggnogg/icon-1.png')
MEDIUM AI review llm_review

An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 82%): The PKGBUILD dynamically resolves a download URL at build time by POSTing to itch.io and parsing the JSON response, then downloads and installs a prebuilt 32-bit game binary from that resolved URL. The binary is not in source=() and has no checksum verification whatsoever. While itch.io is a legitimate game distribution platform and madgarden is the apparent upstream developer, the dynamic URL resolution bypasses Arch's reproducible/verifiable build model entirely: any compromise of the itch.io API endpoint or a MITM could substitute an arbitrary binary that gets installed and executed. The lack of any integrity check on the downloaded tarball or its contents is the core concern. This is a genuine supply-chain risk (unverified executed binary from a dynamically resolved host), consistent with MEDIUM severity.

PKGBUILD

2 offending line(s) highlighted
1# Maintainer: Joseph Ryan <josephryan3.14@gmail.com>
2pkgname=eggnogg
3pkgver=1.0
4pkgrel=1
5pkgdesc="Classic version of sword fighting arcade game"
6arch=('any')
7url="https://madgarden.itch.io/eggnogg"
8license=('custom')
9makedepends=('tar' 'curl' 'gendesk')
10depends=('lib32-libglvnd' 'lib32-sdl_mixer')
11source=('http://madgarden.net/junkz/madgarden/eggnogg/icon-1.png')
12md5sums=('a6eb8862c233b3a85a70ada0f8542edc')
13_name='EGGNOGG'
14_categories='Game;ArcadeGame'
15
16prepare() {
17 gendesk -n -f ${startdir}/PKGBUILD
18}
19
20build() {
21 cd ${srcdir}/
22 game_url=$(curl -s -XPOST "https://madgarden.itch.io/eggnogg/file/908?after_download_lightbox=true" | grep -Po '"url":.*?[^\\]",' | cut -c8- | rev | cut -c3- | rev | sed 's/\\\//\//g')
23 curl -o eggnogg-linux.tar.gz ${game_url}
24 tar xzf eggnogg-linux.tar.gz
25}
26
27package() {
28 cd ${srcdir}/eggnogg-linux
29
30 mkdir -p ${pkgdir}/usr/share/games/${pkgname}
31 mkdir -p ${pkgdir}/usr/bin/
32 mkdir -p ${pkgdir}/usr/share/icons/hicolor/64x64/apps/
33 install -Dm644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
34 cp ${srcdir}/icon-1.png ${pkgdir}/usr/share/icons/hicolor/64x64/apps/${pkgname}.png
35 cp -a eggnogg data README.txt ${pkgdir}/usr/share/games/${pkgname}/
36 # The game needs to be launched from the data parent directory and it needs write access to this folder
37 echo -e "#!/bin/sh\ncd /usr/share/games/${pkgname}\n./eggnogg" > ${pkgdir}/usr/bin/${pkgname}
38 chmod +x ${pkgdir}/usr/bin/${pkgname}
39}
40

Scan history

Scanned at (UTC)SeverityRules
2026-08-03 00:08:14 MEDIUM 3
2026-08-02 00:16:08 MEDIUM 3
2026-08-01 00:11:18 MEDIUM 3
2026-07-31 00:14:10 MEDIUM 3
2026-07-30 00:17:23 MEDIUM 3
2026-07-29 00:25:53 MEDIUM 3
2026-07-28 00:07:28 MEDIUM 3
2026-07-27 00:24:32 MEDIUM 3
2026-07-26 00:07:32 MEDIUM 3
2026-07-25 00:13:44 MEDIUM 3
2026-07-24 00:02:28 MEDIUM 3
2026-07-23 00:14:47 MEDIUM 3
2026-07-22 00:29:32 MEDIUM 3
2026-07-21 00:24:15 MEDIUM 3
2026-07-20 00:19:49 MEDIUM 3
2026-07-19 00:17:08 MEDIUM 3
2026-07-18 00:14:48 MEDIUM 3
2026-07-17 00:06:16 MEDIUM 3
2026-07-16 00:05:41 MEDIUM 3
2026-07-15 00:09:25 MEDIUM 3

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion