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-11-01 00:21:48 | Medium | 2 |
| 2026-10-31 00:07:41 | Medium | 2 |
| 2026-10-30 00:29:30 | Medium | 2 |
| 2026-10-29 00:13:55 | Medium | 2 |
| 2026-10-28 00:06:54 | Medium | 2 |
| 2026-10-27 00:23:28 | Medium | 2 |
| 2026-10-26 00:12:40 | Medium | 2 |
| 2026-10-25 00:20:48 | Medium | 2 |
| 2026-10-24 00:14:55 | Medium | 2 |
| 2026-10-23 00:02:19 | Medium | 2 |
| 2026-10-22 00:13:10 | Medium | 2 |
| 2026-10-21 00:12:50 | Medium | 2 |
| 2026-10-20 00:10:31 | Medium | 2 |
| 2026-10-19 00:03:55 | Medium | 2 |
| 2026-10-18 00:06:55 | Medium | 2 |
| 2026-10-17 00:21:55 | Medium | 2 |
| 2026-10-16 00:12:47 | Medium | 2 |
| 2026-10-15 00:28:05 | Medium | 2 |
| 2026-10-14 00:06:47 | Medium | 2 |
| 2026-10-13 00:23:45 | Medium | 2 |