mrupdater

maintainer koyuawsmbrtn · 0 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The package downloads a prebuilt AppImage (executable binary) from an AWS S3 bucket (s3.us-east-1.amazonaws.com/updates.modretro.com) that is operated by ModRetro, the upstream vendor. The AppImage is then executed during the build phase (chmod +x + run with --appimage-extract) and installed as /usr/bin/mrupdater. A sha256 checksum is present, which mitigates substitution attacks at the point of download, but the host is an S3 bucket rather than a canonical VCS release (e.g. GitHub Releases), meaning the object could be silently replaced by whoever controls the bucket without a tag/release audit trail. The license is listed as 'unknown', and the binary is closed-source with no source build. This is a real supply-chain concern (prebuilt closed-source binary from a cloud storage bucket, executed at install time) but there is no evidence of active malice, making MEDIUM the appropriate rating.

Triggered rules

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 'mrupdater.zip::https://s3.us-east-1.amazonaws.com/updates.modretro.com/apps/MRUpdater-linux-x86_64.zip'
MEDIUM AI review llm_review

An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The package downloads a prebuilt AppImage (executable binary) from an AWS S3 bucket (s3.us-east-1.amazonaws.com/updates.modretro.com) that is operated by ModRetro, the upstream vendor. The AppImage is then executed during the build phase (chmod +x + run with --appimage-extract) and installed as /usr/bin/mrupdater. A sha256 checksum is present, which mitigates substitution attacks at the point of download, but the host is an S3 bucket rather than a canonical VCS release (e.g. GitHub Releases), meaning the object could be silently replaced by whoever controls the bucket without a tag/release audit trail. The license is listed as 'unknown', and the binary is closed-source with no source build. This is a real supply-chain concern (prebuilt closed-source binary from a cloud storage bucket, executed at install time) but there is no evidence of active malice, making MEDIUM the appropriate rating.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Leonie Ain <me@koyu.space>
2pkgname=mrupdater
3pkgver=1.7.0
4pkgrel=2
5pkgdesc="ModRetro's official tool for updating your Chromatic firmware"
6arch=('x86_64')
7url="https://modretro.com"
8license=('unknown')
9depends=('fuse2' 'zlib')
10source=(
11 'mrupdater.zip::https://s3.us-east-1.amazonaws.com/updates.modretro.com/apps/MRUpdater-linux-x86_64.zip'
12 'mrupdater.desktop'
13 '99-modretro.rules'
14)
15sha256sums=('4eaffc24ad54a63ab983ae03278f3cc011c41356f17cb63cc1c6e1d6cc193551'
16 'd9f9ed521e6b1fa7a1ed29706ecd9c82e0fab325d569e0b23bc602da2723c20c'
17 '850c99f36f919d337070a22d8d0b711f85d140d0e7e744cc9545d52d8a51de32')
18options=('!strip')
19
20package() {
21 cd "$srcdir"
22
23 # Find the AppImage file
24 appimage=$(find . -name "*.AppImage" -type f | head -n 1)
25
26 if [ -z "$appimage" ]; then
27 error "No AppImage found in the archive"
28 return 1
29 fi
30
31 # Extract icon from AppImage
32 chmod +x "$appimage"
33 "$appimage" --appimage-extract >/dev/null 2>&1 || true
34
35 # Find and install icon
36 if [ -d "squashfs-root" ]; then
37 # Look for icon files
38 icon=$(find squashfs-root -name "*.png" -o -name "*.svg" | grep -i icon | head -n 1)
39 if [ -n "$icon" ]; then
40 iconext="${icon##*.}"
41 install -Dm644 "$icon" "$pkgdir/usr/share/pixmaps/mrupdater.$iconext"
42 fi
43 fi
44
45 # Install the AppImage
46 install -Dm755 "$appimage" "$pkgdir/usr/bin/mrupdater"
47
48 # Install desktop entry from srcdir
49 install -Dm644 "$srcdir/mrupdater.desktop" "$pkgdir/usr/share/applications/mrupdater.desktop"
50
51 # Install udev rules
52 install -Dm644 "$srcdir/99-modretro.rules" "$pkgdir/etc/udev/rules.d/99-modretro.rules"
53}
54

Scan history

Scanned at (UTC)SeverityRules
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

Report a package

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

0 / 4000
Your suggestion