ghost-dl-git
Triggered rules
pip_install_external
`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:34
pip install -r requirements.txt -
PKGBUILD:35
pip install nuitka
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD clones a personal GitHub repo and uses pip to install unverified dependencies from requirements.txt (no pinned hashes, no integrity checks) and Nuitka, then compiles a standalone binary with Nuitka --onefile which bundles all dependencies into a single opaque executable installed to /usr/bin. The core concern is: (1) pip installs from PyPI without hash verification, meaning any of those packages could be compromised or typosquatted; (2) Nuitka --onefile produces a self-extracting binary that bundles all Python code, making the final artifact opaque and hard to audit; (3) the source is a personal/unofficial GitHub repo with no signed tags (sha256sums=SKIP). This is a genuine supply-chain concern — unverified pip dependencies compiled into an executed binary from an unofficial host — which fits the medium classification. It is not clearly malicious, but the combination of unverified pip installs + opaque compiled binary output is a real risk pattern.
PKGBUILD
2 offending line(s) highlighted# Maintainer: Adam 'TheElevatedOne' Mladý <admin@elevated.ovh> -> https://github.com/TheElevatedOne
pkgname=ghost-dl-git
pkgver=v1.1.4
pkgrel=1
pkgdesc="Kingdom Hearts Insider Game OST Archive Dowloader CLI"
arch=('x86_64')
url="https://github.com/TheElevatedOne/ghost-dl"
license=('GPL3')
depends=('glibc' 'gcc' 'python' 'python-pip')
options=('!debug' '!strip')
makedepends=(
'git'
'clang'
'patchelf'
'ccache'
)
provides=(ghost-dl-git)
conflicts=(ghost-dl-bin)
source=("git+https://github.com/TheElevatedOne/ghost-dl.git#branch=main")
sha256sums=("SKIP")
pkgver() {
cd ghost-dl
git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
cd ..
}
build() {
set -e
cd ghost-dl
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install nuitka
if ! ls build; then mkdir build; fi
python -m nuitka --onefile --follow-imports --main=ghost_dl.py --output-dir=build --output-filename=ghost-dl
deactivate
rm -rf venv
rm -rf build/ghost_dl.build build/ghost_dl.dist build/ghost_dl.onefile-build
cd ..
}
package() {
set -e
cd ghost-dl
install -Dm755 build/ghost-dl "$pkgdir/usr/bin/ghost-dl"
install -D LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}/"
}
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 |