nion-swift
The PKGBUILD downloads a prebuilt binary ZIP from nion.com (the official vendor website for Nion Co.'s NionSwift software), extracts it, and installs a native executable binary directly to /usr/local/NionSwift/NionSwift which is then symlinked into /usr/bin. The source host is the official vendor domain, not a personal or unofficial host, which reduces but does not eliminate risk. However, md5sums=('SKIP') means there is no integrity verification of the downloaded binary — if the upstream host were compromised or the file replaced, users would silently receive a malicious binary. The installed artifact is an executed binary (not pure data), so the lack of checksum verification is a genuine supply-chain concern. This is a textbook medium: prebuilt binary from a vendor host with no checksum verification.
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:12
source=("${pkgname}.zip::http://nion.com/swift/files/NionSwift_Linux_x64_python3.4m_0.5.7.zip")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 75%): The PKGBUILD downloads a prebuilt binary ZIP from nion.com (the official vendor website for Nion Co.'s NionSwift software), extracts it, and installs a native executable binary directly to /usr/local/NionSwift/NionSwift which is then symlinked into /usr/bin. The source host is the official vendor domain, not a personal or unofficial host, which reduces but does not eliminate risk. However, md5sums=('SKIP') means there is no integrity verification of the downloaded binary — if the upstream host were compromised or the file replaced, users would silently receive a malicious binary. The installed artifact is an executed binary (not pure data), so the lack of checksum verification is a genuine supply-chain concern. This is a textbook medium: prebuilt binary from a vendor host with no checksum verification.
PKGBUILD
1 offending line(s) highlighted# Maintianer: Jordan Pierce <jordan.pierce.00@gmail.com>
pkgname=nion-swift
pkgver=0.5.7
pkgrel=1
pkgdesc="Program developed by Nion Co. for interfacing with electron microscopes and for data analysis."
arch=('i686' 'x86_64')
url="http://nion.com/swift/"
license=('GPL')
depends=('qt5-base' 'qt5-svg' 'python' 'python-numpy' 'python34')
makedepend=('unzip')
# install=$pkgname.install
source=("${pkgname}.zip::http://nion.com/swift/files/NionSwift_Linux_x64_python3.4m_0.5.7.zip")
# source=("${pkgname}.zip::http://lythium.uoregon.edu/~jordan/NionSwift_Linux_x64_0.5.1.zip")
# noextract=("NionSwift_Linux_x64_0.5.1.zip")
md5sums=("SKIP")
# pkgdir="/usr/local/"
# build() {
# cd "$srcdir"
# msg "Uzipping"
# unzip ${pkgname}.zip
# # find . -name "*.pyc" -exec rm -f {} \;
# }
package() {
# cd "$srcdir/NionSwift_python3.4m_0.5.7"
# echo "`ls`"
mkdir -p $pkgdir/usr/local/
cp -Rax $srcdir/NionSwift_python3.4m_0.5.7/ $pkgdir/usr/local/
mv $pkgdir/usr/local/NionSwift_python3.4m_0.5.7/ $pkgdir/usr/local/NionSwift
# cp -R NionSwift $pkgdir/usr/local/
# echo "startdir $startdir"
# echo "pkgdir $pkgdir"
# echo "`ls $startdir`"
mkdir -p $pkgdir/usr/share/{applications,pixmaps}
install -Dm644 $startdir/nionswift.desktop $pkgdir/usr/share/applications/
install -Dm644 $startdir/nionswift.png $pkgdir/usr/share/pixmaps/
mkdir -p $pkgdir/usr/bin
chmod +x $pkgdir/usr/local/NionSwift/NionSwift
ln -s $pkgdir/usr/local/NionSwift/NionSwift $pkgdir/usr/bin/NionSwift
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Medium | 2 |
| 2026-09-16 00:03:17 | Medium | 2 |
| 2026-09-15 00:25:31 | Medium | 2 |
| 2026-09-14 00:27:57 | Medium | 2 |
| 2026-09-13 00:19:54 | Medium | 2 |
| 2026-09-12 00:25:17 | Medium | 2 |
| 2026-09-11 00:19:22 | Medium | 2 |
| 2026-09-10 00:22:44 | Medium | 2 |
| 2026-09-09 00:04:09 | Medium | 2 |
| 2026-09-08 00:18:08 | Medium | 2 |
| 2026-09-07 00:30:15 | Medium | 2 |
| 2026-09-06 00:17:06 | Medium | 2 |
| 2026-09-05 00:16:27 | Medium | 2 |
| 2026-09-04 00:03:13 | Medium | 2 |
| 2026-09-03 00:15:47 | Medium | 2 |
| 2026-09-02 00:02:31 | Medium | 2 |
| 2026-09-01 00:11:19 | Medium | 2 |
| 2026-08-31 00:19:57 | Medium | 2 |
| 2026-08-30 00:04:14 | Medium | 2 |
| 2026-08-29 00:29:17 | Medium | 2 |