python-jkey
The package installs an external Python dependency (portalocker) via 'uv pip install' during packaging, which introduces a supply-chain risk as the source and integrity of the downloaded package are not verified or pinned in the PKGBUILD.
Triggered rules
pip_install_external
`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums. Severity reduced: python-* packages routinely use pip.
-
PKGBUILD:29
uv pip install --target "$pkgdir/$site_packages" portalocker
alt_pkg_manager_install
A non-pip/npm package manager (pipx, uv, poetry, cargo install, go install, gem, conda…) fetches and builds an external package at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:29
uv pip install --target "$pkgdir/$site_packages" portalocker
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 95%): The package installs an external Python dependency (portalocker) via 'uv pip install' during packaging, which introduces a supply-chain risk as the source and integrity of the downloaded package are not verified or pinned in the PKGBUILD.
PKGBUILD
1 offending line(s) highlighted# Maintainer: imjiaoyuan <imjiaoyuan@gmail.com>
pkgname=python-jkey
pkgver=0.3.2
pkgrel=2
pkgdesc="Python library for password management and TOTP verification"
arch=('any')
url="https://github.com/imjiaoyuan/jkey"
license=('MIT')
depends=('python>=3.10')
optdepends=('python-opencv: QR code scanning for jkey 2fa add')
makedepends=('python-build' 'python-installer' 'python-wheel' 'python-setuptools>=61.0' 'uv')
options=('!strip' '!debug')
source=("$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz")
sha256sums=('a9acf6e0aa40407c5cc08bef2ee0cbd90e841ca0e3b01429f7f01b2942a78207')
build() {
cd "jkey-$pkgver"
python -m build --wheel --no-isolation
}
package() {
cd "jkey-$pkgver"
local site_packages=$(python -c "import site; print(site.getsitepackages()[0])")
python -m installer --destdir="$pkgdir" dist/*.whl
uv pip install --target "$pkgdir/$site_packages" portalocker
rm -f "$pkgdir/$site_packages/.lock"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Medium | 3 |
| 2026-10-31 00:07:41 | Medium | 3 |
| 2026-10-30 00:29:30 | Medium | 3 |
| 2026-10-29 00:13:55 | Medium | 3 |
| 2026-10-28 00:06:54 | Medium | 3 |
| 2026-10-27 00:23:28 | Medium | 3 |
| 2026-10-26 00:12:40 | Medium | 3 |
| 2026-10-25 00:20:48 | Medium | 3 |
| 2026-10-24 00:14:55 | Medium | 3 |
| 2026-10-23 00:02:19 | Medium | 3 |
| 2026-10-22 00:13:10 | Medium | 3 |
| 2026-10-21 00:12:50 | Medium | 3 |
| 2026-10-20 00:10:31 | Medium | 3 |
| 2026-10-19 00:03:55 | Medium | 3 |
| 2026-10-18 00:06:55 | Medium | 3 |
| 2026-10-17 00:21:55 | Medium | 3 |
| 2026-10-16 00:12:47 | Medium | 3 |
| 2026-10-15 00:28:05 | Medium | 3 |
| 2026-10-14 00:06:47 | Medium | 3 |
| 2026-10-13 00:23:45 | Medium | 3 |