decay-factory
Triggered rules
pip_install_external
`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:18
pip3 install -r req.txt
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): Several real concerns here: (1) pip install during prepare() installs Python packages system-wide (or into the build environment) from PyPI based on an unpinned requirements.txt with no integrity verification (all sha256sums are 'SKIP'). This means any package listed in requirements.txt could be substituted or updated to a malicious version at any time. (2) All three source files are fetched from a mutable GitHub raw URL (main branch, not a tagged release or commit hash) with SKIP checksums, meaning the content can change at any time without detection. (3) pip install -r runs during the makepkg prepare() phase, which executes arbitrary code from PyPI packages. (4) The installed script conv.py is placed in /usr/bin and made executable, running arbitrary Python. The combination of mutable sources, no integrity checks, and pip executing third-party code during build constitutes a genuine supply-chain risk, confirming the MEDIUM rating.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Luke <Infinitybeond1@protonmail.com>
pkgname='decay-factory'
pkgdesc="A simple cli to convert any image to a Decay themed wallpaper"
pkgver=1.0
pkgrel=1
arch=('x86_64')
url="https://github.com/decaycs/decay-factory"
license=('GPL3')
source=("conv.py::https://raw.githubusercontent.com/decaycs/decay-factory/main/conv.py"
"decay.sh::https://raw.githubusercontent.com/decaycs/decay-factory/main/decay.sh"
"req.txt::https://raw.githubusercontent.com/decaycs/decay-factory/main/requirements.txt"
)
makedepends=('python-pip')
depends=('python3' 'bash')
prepare() {
pip3 install -r req.txt
}
build() {
chmod 755 decay.sh
chmod 755 conv.py
}
package() {
install -D "conv.py" "$pkgdir/usr/bin/decayFactorypy"
install -D "decay.sh" "$pkgdir/usr/bin/decayFactory"
}
sha256sums=('SKIP' 'SKIP' 'SKIP')
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 |