aksusbd-bin
Triggered rules
pip_install_external
`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:38
pip install selenium
llm_review
The static rules found a suspicious pattern they could not resolve, so an AI model (anthropic/claude-4.6-sonnet-20260217) reviewed it and judged it HIGH (confidence 85%): This PKGBUILD has multiple serious concerns beyond the pip install of selenium. The primary issue is that the actual software being installed (aksusbd binaries) is not fetched from a declared source with a checksum — instead, a Python script (download.py) is executed during prepare() to dynamically download the package at build time using a Selenium-automated browser session. This means: (1) the actual installed binaries have no integrity verification whatsoever, (2) the download.py script (whose sha256 is listed but whose contents are opaque) controls what binary gets fetched and installed, (3) the binary is a proprietary daemon (aksusbd/hasplmd) extracted from an RPM and installed with 755 permissions — executed code from an unverified, dynamically-fetched source. The pattern of using a headless browser to scrape/download a binary at build time completely bypasses AUR's source integrity model. Even if download.py is benign today, this is a genuine supply-chain risk: the script could fetch any binary from any location, and there is no way to audit what will actually be installed. The pip install of selenium is a secondary concern. The combination of an opaque downloader script + unverified executed binaries warrants a high severity rating.
PKGBUILD
1 offending line(s) highlighted# $Id$
# Maintainer: Alexander Konarev (avkonarev) <AVKonarev@gmail.com>
pkgname=aksusbd-bin
pkgver=9.13
pkgrel=1
pkgdesc="Sentinel AKSUSB daemon supporting Sentinel HASP, HASP HL, HASP4 and Hardlock keys."
arch=('i686' 'x86_64')
url="https://supportportal.thalesgroup.com"
license=('custom')
arch=('x86_64')
source=(
"0001-patch.patch"
"download.py")
sha256sums=('6fcb6c4fcba1d01c1b3e68258e95297c323b2cbe8ee75c0a14ac0e9006926312'
'b3984568b7b9a30601882cc8994c978fa408f380d29f00b802e6344610b4ea4e')
makedepends=('libarchive'
'python'
'python-pip'
'firefox'
'geckodriver'
'tar'
'patch')
conflicts=('ehaspd' 'aksusbd')
options=('!strip')
install=package.install
pkgver() {
cd $srcdir
cat version.txt| cut -d' ' -f 1
}
prepare(){
cd $srcdir
python -m venv venv
source venv/bin/activate
pip install selenium
python download.py
_nver=$(cat version.txt| cut -d' ' -f 1)
_nrel=$(cat version.txt| cut -d' ' -f 2)
tar -xvzf aksusbd-${_nver}.${_nrel}.tar.gz
bsdtar -xvf aksusbd-${_nver}.${_nrel}/pkg/aksusbd-${_nver}-${_nrel}.${CARCH}.rpm
patch -p1 < 0001-patch.patch
}
package() {
cd $srcdir
arch_suffix=_${CARCH}
# Binaries:
install -dm755 ${pkgdir}/usr/bin
install -Dm755 usr/sbin/{aksusbd,hasplmd}${arch_suffix} ${pkgdir}/usr/bin/
# udev rules:
install -dm755 ${pkgdir}/usr/lib/udev/rules.d
install -m644 etc/udev/rules.d/* ${pkgdir}/usr/lib/udev/rules.d/
# systemd service
install -dm755 ${pkgdir}/usr/lib/systemd/system/
install -m644 var/hasplm/init/aksusbd${arch_suffix}.service ${pkgdir}/usr/lib/systemd/system/aksusbd.service
install -m644 var/hasplm/init/hasplmd${arch_suffix}.service ${pkgdir}/usr/lib/systemd/system/hasplmd.service
# Readme.html:
install -dm755 ${pkgdir}/usr/share/aksusbd/Readme
cp -R Readme_HTML5/* ${pkgdir}/usr/share/aksusbd/Readme/
chmod -R 644 ${pkgdir}/usr/share/aksusbd/Readme/*
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | HIGH | 2 |
| 2026-08-02 00:16:08 | HIGH | 2 |
| 2026-08-01 00:11:18 | HIGH | 2 |
| 2026-07-31 00:14:10 | HIGH | 2 |
| 2026-07-30 00:17:23 | HIGH | 2 |
| 2026-07-29 00:25:53 | HIGH | 2 |
| 2026-07-28 00:07:28 | HIGH | 2 |
| 2026-07-27 00:24:32 | HIGH | 2 |
| 2026-07-26 00:07:32 | HIGH | 2 |
| 2026-07-25 00:13:44 | HIGH | 2 |
| 2026-07-24 00:02:28 | HIGH | 2 |
| 2026-07-23 00:14:47 | HIGH | 2 |
| 2026-07-22 00:29:32 | HIGH | 2 |
| 2026-07-21 00:24:15 | HIGH | 2 |
| 2026-07-20 00:19:49 | HIGH | 2 |
| 2026-07-19 00:17:08 | HIGH | 2 |
| 2026-07-18 00:14:48 | HIGH | 2 |
| 2026-07-17 00:06:16 | HIGH | 2 |
| 2026-07-16 00:05:41 | HIGH | 2 |
| 2026-07-15 00:09:25 | HIGH | 2 |