kryoflux
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://www.kryoflux.com/download/kryoflux_${pkgver}0_linux.tar.gz" -
PKGBUILD:18
'https://kryoflux.com/kryoflux-ui.jar' -
PKGBUILD:22
'https://webstore.kryoflux.com/catalog/images/kf_logo_big.png')
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD downloads and installs a prebuilt binary .deb (containing dtc and libcapsimage.so) and a prebuilt JAR (kryoflux-ui.jar) from kryoflux.com. These are executed/loaded at runtime. The sources are from the official KryoFlux vendor domain (kryoflux.com and webstore.kryoflux.com), which is the legitimate upstream for this proprietary hardware product. However, the checksums are MD5 (weak, though present), and the JAR is fetched from a bare URL without a versioned path, meaning it could be silently updated server-side without a pkgver bump. The .deb extraction and direct installation of a prebuilt binary is a real supply-chain concern since there is no way to verify the binary's provenance beyond the vendor's word. This is a legitimate medium-risk pattern: prebuilt proprietary binaries from the official vendor host, not clearly malicious but not auditable source builds.
PKGBUILD
3 offending line(s) highlighted# Co-Maintainer: Jose Riha <jose1711 gmail com>
# Maintainer: John Lane <archlinux at jelmail dot com>
pkgname=kryoflux
pkgdesc="USB Floppy Controller for Software Preservation"
pkgver=3.5
pkgrel=1
arch=('x86_64' 'aarch64')
url="http://www.kryoflux.com"
license=('custom')
provides=('capsimage')
conflicts=('capsimage')
depends=('libusb')
install=kryoflux.install
makedepends=('gendesk' 'imagemagick')
optdepends=('java-runtime: for the Kryoflux GUI')
source=("https://www.kryoflux.com/download/kryoflux_${pkgver}0_linux.tar.gz"
'https://kryoflux.com/kryoflux-ui.jar'
'80-kryoflux.rules'
'kryoflux.conf'
'kryoflux.sh'
'https://webstore.kryoflux.com/catalog/images/kf_logo_big.png')
md5sums=('aa1a74bc681e2092278506ef4a2126f9'
'44a067aa8d40dd0c8c53d6ff3ad8109c'
'43ec7eb49fbdab703cafe146145fe0de'
'ede10c48b2b1edc5c346e8814f07bcdb'
'6811dc57633d7046a540b65e763aa338'
'ede9a2b77643af8bf9d166c30827c170')
prepare() {
cd "${srcdir}"
gendesk -f -n --pkgname "${pkgname}" --pkgdesc "Control program for KryoFlux" --exec "kryoflux" --categories "Utility;Archiving"
convert kf_logo_big.png -background None -gravity center -extent 400x400 kryoflux.png
}
package() {
pkgroot=${pkgdir}/usr
#pkgroot=${pkgdir}/usr/local
cd "$srcdir"
install -D 80-kryoflux.rules ${pkgdir}/etc/udev/rules.d/80-kryoflux.rules
install -D kryoflux.conf ${pkgdir}/etc/modprobe.d/kryoflux.conf
cd "$srcdir/Linux_Release${pkgver}0"
install -d ${pkgroot}/{bin,lib}
if [ "$CARCH" = "x86_64" ]
then
ar -xv dtc/${CARCH}/kryoflux-dtc_${pkgver}.0_amd64.deb data.tar.gz
else
ar -xv dtc/${CARCH}/kryoflux-dtc_${pkgver}.0_arm64.deb data.tar.gz
fi
tar -C ${pkgdir} -xvf data.tar.gz
# rename dtc binary to kdtc to avoid clash with dtc package (suggested by @frankspace)
mv ${pkgdir}/usr/bin/dtc ${pkgdir}/usr/bin/kdtc
# we'll also copy dtc under original name to /usr/share/java/kryoflux
install -Dm755 ${pkgdir}/usr/bin/kdtc ${pkgroot}/share/java/kryoflux/dtc
install -Dm644 ${srcdir}/kryoflux-ui.jar ${pkgroot}/share/java/kryoflux/kryoflux-ui.jar
# Documents
install -d ${pkgdir}/usr/share/{licenses,doc}/kryoflux
install -Dm644 LICENCE.txt ${pkgdir}/usr/share/licenses/kryoflux/LICENCE
install docs/* ${pkgdir}/usr/share/doc/kryoflux
install dtc/*README* ${pkgdir}/usr/share/doc/kryoflux
cp -a schematics ${pkgdir}/usr/share/doc/kryoflux
# Shell wrapper
install -Dm755 ${srcdir}/kryoflux.sh ${pkgroot}/bin/kryoflux
# Desktop file
install -Dm644 "${srcdir}/${pkgname}.desktop" "${pkgroot}/share/applications/${pkgname}.desktop"
install -Dm644 "${srcdir}/${pkgname}.png" "${pkgroot}/share/pixmaps/${pkgname}.png"
# resolve conflict with filesystem package
mv ${pkgdir}/usr/lib64/libcapsimage.so ${pkgdir}/usr/lib/libcapsimage.so
rmdir ${pkgdir}/usr/lib64
}
# vim: ft=sh syn=sh et
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 |