hamrs-9m2pju
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:17
source=("https://hamrs-dist.s3.amazonaws.com/$_pkgname-${pkgver}-linux-x86_64.AppImage")
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 AppImage binary from an S3 bucket (hamrs-dist.s3.amazonaws.com) with sha256sums=('SKIP'), then executes it during the prepare() phase (--appimage-extract) and installs it as a setuid-capable executable. The S3 bucket appears to be the official distribution host for HAMRS Pro (the app's own distribution channel), which reduces but does not eliminate risk. However, the use of SKIP for the checksum means there is no integrity verification — if the S3 object were replaced or the bucket compromised, users would silently receive a tampered binary. Executing an unverified AppImage binary during the build process is a genuine supply-chain concern. This is a real medium-severity issue: an executed binary from a host that, while plausibly official, is unverified by any checksum.
PKGBUILD
1 offending line(s) highlighted# Maintainer: 9M2PJU <9m2pju@hamradio.my>
pkgname=hamrs-9m2pju
_pkgname=hamrs-pro
__pkgname=hamrs
_install_path="/opt/appimages"
pkgver=2.41.1 # Clone this AUR and run update.sh to update package version
pkgrel=1
install=hamrs-9m2pju.install
pkgdesc="HAMRS Pro repackaged by 9M2PJU — Portable ham radio logger (AppImage version)"
arch=('x86_64')
url="https://hamrs.app/"
license=('LicenseRef-custom:electron')
depends=('fuse2' 'hicolor-icon-theme' 'zlib' 'hamradio-menus')
provides=('hamrs')
conflicts=('hamrs')
options=(!strip)
source=("https://hamrs-dist.s3.amazonaws.com/$_pkgname-${pkgver}-linux-x86_64.AppImage")
noextract=("$_pkgname-${pkgver}-linux-x86_64.AppImage")
sha256sums=('SKIP')
prepare() {
chmod a+x "$_pkgname-$pkgver-linux-$arch.AppImage"
"./$_pkgname-$pkgver-linux-$arch.AppImage" --appimage-extract > /dev/null
# Fix desktop file to use absolute AppImage path and correct icon reference
sed -i \
-e 's|AppRun|/opt/appimages/hamrs-pro.AppImage|g' \
-e 's|Utility|HamRadio|g' \
-e 's|Icon=.*|Icon=hamrs-pro|g' \
"$srcdir/squashfs-root/$_pkgname.desktop"
}
package() {
# Install AppImage binary
install -Dm755 "$srcdir/$_pkgname-$pkgver-linux-$arch.AppImage" \
"$pkgdir/$_install_path/$_pkgname.AppImage"
# Install .desktop file
install -Dm644 "$srcdir/squashfs-root/$_pkgname.desktop" \
"$pkgdir/usr/share/applications/$_pkgname.desktop"
# Install icons (copy 1024x1024 version as both sizes)
install -Dm644 "$srcdir/squashfs-root/usr/share/icons/hicolor/1024x1024/apps/hamrs.png" \
"$pkgdir/usr/share/icons/hicolor/1024x1024/apps/hamrs-pro.png"
install -Dm644 "$srcdir/squashfs-root/usr/share/icons/hicolor/1024x1024/apps/hamrs.png" \
"$pkgdir/usr/share/icons/hicolor/32x32/apps/hamrs-pro.png"
# Install license
install -Dm644 "$srcdir/squashfs-root/LICENSE.electron.txt" \
"$pkgdir/usr/share/licenses/$pkgname/LICENSE.electron.txt"
}
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 |