vllama
Triggered rules
pip_install_external
`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:25
venv312/bin/pip install -r requirements.txt
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD pulls a pinned GitHub archive tarball (with a sha256sum) from the official upstream repo, which is fine. However, during build() it runs 'pip install -r requirements.txt' inside a venv, which fetches Python packages from PyPI at build time with no version pinning or integrity verification visible in the PKGBUILD itself. The requirements.txt is part of the tarball (so its content is covered by the sha256sum of the archive), but the actual PyPI packages it references are fetched dynamically without checksums. This is a real, if common, supply-chain concern: any package listed in requirements.txt could be typosquatted, compromised, or yanked/replaced on PyPI between builds. Additionally, the venv is bundled wholesale into /opt/vllama, meaning unverified third-party Python code is installed system-wide and executed as part of a systemd service. This is a genuine medium-severity supply-chain risk — not clearly malicious, but not clean either.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Tom Himanen <tom.himanen@futuhima.ninja>
pkgname=vllama
pkgver=0.2.0
pkgrel=5
pkgdesc="vLLM + Ollama hybrid server - Fast inference with Ollama model management"
arch=('x86_64')
url="https://github.com/erkkimon/vllama"
license=('MIT')
depends=('python' 'ollama' 'python-pip' 'python-setuptools')
makedepends=('python-setuptools' 'git')
install=vllama.install
_commit=40602f1e70f3ca4fd98f7f7ff77deddeeda3040b
source=("${pkgname}-${_commit}.tar.gz::https://github.com/erkkimon/vllama/archive/${_commit}.tar.gz"
"vllama.service"
"multiuser.conf"
"vllama.install")
build() {
cd "${srcdir}/${pkgname}-${_commit}"
# Create venv312 in package
python3.12 -m venv venv312
# Install dependencies in venv
venv312/bin/pip install -r requirements.txt
}
package() {
cd "${srcdir}/${pkgname}-${_commit}"
# Install main script
install -Dm755 vllama.py "${pkgdir}/opt/vllama/vllama.py"
# Copy venv
cp -r venv312 "${pkgdir}/opt/vllama/"
# Install systemd service
install -Dm644 "${srcdir}/vllama.service" "${pkgdir}/usr/lib/systemd/system/vllama.service"
install -Dm644 "${srcdir}/multiuser.conf" "${pkgdir}/etc/systemd/system/vllama.service.d/multiuser.conf"
}
sha256sums=('7664ce171d46ae02e7c61e0217c7cc73b2e13b570cb536c69826dcdd5e2b5de0'
'32f30f302919e881bf3205320b9f8c5dc7720738223bb035a26f856cdc9cf882'
'316d741d3c15533002b0607d88ac9231c72258e5e856bd470805a8ba1b9ee29f'
'1d84cd4dab610669264163810c15a0101750a5764ccdd37f13aab061094f23bf')
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 |