electrum-nmc-bin

maintainer maxweiss · 3 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged This PKGBUILD installs a prebuilt AppImage binary (an executable that bundles its own runtime and runs directly) downloaded from namecoin.org, which is the official project website. The SHA256 checksum is verified, which mitigates casual tampering. However, the binary is an AppImage — a self-contained executable that runs with user privileges and contains its own bundled libraries — downloaded from a third-party host (even if official). There is no GPG/PGP signature verification, only a SHA256 checksum hardcoded in the PKGBUILD itself. If namecoin.org were compromised or the file replaced, the checksum in the PKGBUILD would need to be updated to detect it, but the PKGBUILD maintainer controls that checksum. The maintainer email is obfuscated via base64 in a comment, which is cosmetic and not a security concern. The GitHub sources are pinned to a specific commit hash, which is good practice. Overall this is a legitimate medium-risk pattern: an executed binary from an official but non-Arch-controlled host, with checksum-only (no cryptographic signature) verification. This matches the standard AUR -bin package pattern and is not clearly malicious, but represents a real supply-chain concern inherent to distributing prebuilt binaries.

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:29 source=("electrum-nmc.AppImage::https://www.namecoin.org/files/electrum-nmc/electrum-nmc-${pkgver}/electrum-nmc-nc${pkgver}-x86_64.AppImage"
MEDIUM AI review llm_review

An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): This PKGBUILD installs a prebuilt AppImage binary (an executable that bundles its own runtime and runs directly) downloaded from namecoin.org, which is the official project website. The SHA256 checksum is verified, which mitigates casual tampering. However, the binary is an AppImage — a self-contained executable that runs with user privileges and contains its own bundled libraries — downloaded from a third-party host (even if official). There is no GPG/PGP signature verification, only a SHA256 checksum hardcoded in the PKGBUILD itself. If namecoin.org were compromised or the file replaced, the checksum in the PKGBUILD would need to be updated to detect it, but the PKGBUILD maintainer controls that checksum. The maintainer email is obfuscated via base64 in a comment, which is cosmetic and not a security concern. The GitHub sources are pinned to a specific commit hash, which is good practice. Overall this is a legitimate medium-risk pattern: an executed binary from an official but non-Arch-controlled host, with checksum-only (no cryptographic signature) verification. This matches the standard AUR -bin package pattern and is not clearly malicious, but represents a real supply-chain concern inherent to distributing prebuilt binaries.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Maximilian Weiss <$(echo "bWF4QG1heHdlaXNzLmlv" | base64 -d)>
2# Contributor: Jeremy Rand
3# Contributor: The Namecoin Developers
4# Contributor: The Electrum-DOGE Developers
5# Contributor: The Electrum Developers
6# Contributor: Thomas Voegtlin
7# Contributor: The Bitcoin Developers
8
9pkgname=electrum-nmc-bin
10pkgver=4.0.6
11pkgrel=1
12pkgdesc='Namecoin port of Electrum client with name support'
13
14arch=('x86_64')
15url='https://www.namecoin.org/'
16license=('Custom: multiple open source')
17
18depends=()
19
20optdepends=('cython: Compilation support for all hardware wallet dependencies'
21 'python-btchip: Ledger, Trezor, and KeepKey hardware wallet support dependency'
22 'python-trezor: Trezor hardware support dependency'
23 'python-keepkey: KeepKey hardware wallet support dependency'
24 'python-ckcc-protocol: Coldcard wallet support')
25
26provides=('electrum-nmc' 'electrum-nmc-bin')
27conflicts=('electrum-nmc-bin')
28
29source=("electrum-nmc.AppImage::https://www.namecoin.org/files/electrum-nmc/electrum-nmc-${pkgver}/electrum-nmc-nc${pkgver}-x86_64.AppImage"
30 "electrum_nmc_bin.png::https://raw.githubusercontent.com/namecoin/electrum-nmc/30762795b88da0e0a208dc748bb98bdc35f6fb79/electrum_nmc/electrum/gui/icons/electrum_nmc.png"
31 "AUTHORS::https://raw.githubusercontent.com/namecoin/electrum-nmc/30762795b88da0e0a208dc748bb98bdc35f6fb79/AUTHORS"
32 "README.rst::https://raw.githubusercontent.com/namecoin/electrum-nmc/30762795b88da0e0a208dc748bb98bdc35f6fb79/README.rst"
33 "RELEASE-NOTES::https://raw.githubusercontent.com/namecoin/electrum-nmc/30762795b88da0e0a208dc748bb98bdc35f6fb79/RELEASE-NOTES"
34 "LICENCE::https://raw.githubusercontent.com/namecoin/electrum-nmc/30762795b88da0e0a208dc748bb98bdc35f6fb79/LICENCE"
35 "LICENCE.DOGE::https://raw.githubusercontent.com/namecoin/electrum-nmc/30762795b88da0e0a208dc748bb98bdc35f6fb79/LICENCE.DOGE")
36
37noextract=("electrum-nmc.AppImage" "electrum-nmc-nc${pkgver}-x86_64.AppImage")
38options=(!strip)
39
40sha256sums=('cc5a46089a1b4fdf9baec6284cbd77856771a0f3fb49752d33a4075eca20f25f'
41 'b9a107d0716183fd98439b93a93643856b7774342f36cf9afcd6a83419c6f38d'
42 '507ca68a5818f30dabc14bb61f4d5045e78dfd13f1e01cf56a8e61c7e1d0fb8f'
43 '6e9a46c9c296676072eb059d29a9cbf23a04719156c45df3ab34e269ab61b9c2'
44 'f31755ae0b7dfd8f0a10887b8694da52aeb5daa4c69246e4760844a3cafac933'
45 '3e6dae555eb92787fc82d1d48355677f454c7f65aeb38d3f9e72bf9a3daf034b'
46 '8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903')
47
48prepare() {
49 cat <<EOF > "${srcdir}/electrum-nmc-appimage.desktop"
50[Desktop Entry]
51Comment=Lightweight Namecoin Client With Full Name Support
52Exec=electrum-nmc.AppImage %u
53Icon=electrum_nmc_bin
54Name=Electrum Namecoin Wallet (AppImage)
55Categories=Finance;Network;
56Terminal=false
57Type=Application
58MimeType=x-scheme-handler/namecoin;
59EOF
60 touch "${srcdir}/no_desktopintegration"
61}
62
63package() {
64 cd "${srcdir}/"
65
66 # I don't like touching the system, but I don't know a better way to accomplish this.
67 # There's no CLI flag as far as I know. Please contact me if you know a better way.
68 if [ ! -f /usr/share/appimagekit/no_desktopintegration ]; then
69 install -Dm644 "${srcdir}/no_desktopintegration" "${pkgdir}/usr/share/appimagekit/no_desktopintegration"
70 fi
71
72 install -Dm755 "${srcdir}/electrum-nmc.AppImage" "${pkgdir}/usr/bin/electrum-nmc.AppImage"
73 install -Dm755 "${srcdir}/electrum-nmc-appimage.desktop" "${pkgdir}/usr/share/applications/electrum-nmc-appimage.desktop"
74 install -Dm644 "${srcdir}/electrum_nmc_bin.png" "${pkgdir}/usr/share/pixmaps/electrum_nmc_bin.png"
75 install -Dm644 "${srcdir}/AUTHORS" "${pkgdir}/usr/share/doc/${pkgname}/AUTHORS"
76 install -Dm644 "${srcdir}/README.rst" "${pkgdir}/usr/share/doc/${pkgname}/README.rst"
77 install -Dm644 "${srcdir}/RELEASE-NOTES" "${pkgdir}/usr/share/doc/${pkgname}/RELEASE-NOTES"
78 install -Dm644 "${srcdir}/LICENCE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENCE"
79 install -Dm644 "${srcdir}/LICENCE.DOGE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENCE.DOGE"
80}
81
82

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