procertum-diagnostic
The PKGBUILD downloads a prebuilt binary installer (.bin) from files.certum.eu, which is the official Certum/Asseco vendor file distribution host (Certum is a Polish CA/PKI vendor). The binary is executed via `sh ... --noexec --keep` to extract its payload, and the extracted contents are then installed. This is a legitimate vendor pattern for self-extracting installers, and files.certum.eu is the official Certum software distribution domain matching the package's stated purpose. However, the integrity check uses only MD5 (weak, collision-prone) rather than SHA-256 or a cryptographic signature, and the source is a prebuilt binary blob from a vendor host rather than source code — meaning any compromise or substitution at the host level would result in arbitrary code execution on the user's system. This is a genuine medium-severity supply-chain concern (executed binary from a non-PyPI/non-GitHub official host with only MD5 verification), not a false positive, but also not evidence of active malice.
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
"https://files.certum.eu/software/proCertumDiagnostic/Linux-Ubuntu/${pkgver}/proCertumDiagnostic-${pkgver}-${CARCH}-ubuntu.bin"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD downloads a prebuilt binary installer (.bin) from files.certum.eu, which is the official Certum/Asseco vendor file distribution host (Certum is a Polish CA/PKI vendor). The binary is executed via `sh ... --noexec --keep` to extract its payload, and the extracted contents are then installed. This is a legitimate vendor pattern for self-extracting installers, and files.certum.eu is the official Certum software distribution domain matching the package's stated purpose. However, the integrity check uses only MD5 (weak, collision-prone) rather than SHA-256 or a cryptographic signature, and the source is a prebuilt binary blob from a vendor host rather than source code — meaning any compromise or substitution at the host level would result in arbitrary code execution on the user's system. This is a genuine medium-severity supply-chain concern (executed binary from a non-PyPI/non-GitHub official host with only MD5 verification), not a false positive, but also not evidence of active malice.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Carl Kittelberger <icedream@icedream.pw>
pkgname=procertum-diagnostic
pkgver=1.3.10
pkgrel=1
epoch=
pkgdesc="Diagnostic tool for proCertum cards."
arch=(x86_64)
url="https://www.support.certum.eu/en/cert-offer-card-manager/"
license=(unknown)
provides=()
source=(
"https://files.certum.eu/software/proCertumDiagnostic/Linux-Ubuntu/${pkgver}/proCertumDiagnostic-${pkgver}-${CARCH}-ubuntu.bin"
)
md5sums=('718562fe782059775344d046ac0f9f1b')
prepare() {
sh "./proCertumDiagnostic-${pkgver}-${CARCH}-ubuntu.bin" --noexec --keep --nox11 --nochown --target "${srcdir}/${pkgname}-${pkgver}"
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
#./zz_install
INSTALL_DIR="$pkgdir/opt/proCertumDiagnostic"
USER_DESKTOP_FILE=proCertumDiagnostic.desktop
mkdir -p "$INSTALL_DIR"
cp -R -a * "$INSTALL_DIR"
chown -R root:root "$INSTALL_DIR"
chmod 755 "$INSTALL_DIR"
# remove installer scripts
rm "$INSTALL_DIR"/zz_* "$INSTALL_DIR"/proCertumDiagnostic_uninstall
# install link to binary
mkdir -p "$pkgdir/usr/bin"
ln -rs "$pkgdir/opt/proCertumdiagnostic/proCertumDiagnostic" "$pkgdir/usr/bin/"
# install desktop file
mkdir -p "$pkgdir/usr/share/applications"
cp -R -a "$USER_DESKTOP_FILE" "$pkgdir/usr/share/applications/"
# install license
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" "$INSTALL_DIR"/licenses/*
}
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 |