library-converter-git
Triggered rules
npm_install_external
Runs `npm/yarn/pnpm install <package>` for a package not in source=(), pulling unpinned, unreviewed code at build time. Severity downgraded: the package declares/looks like a Node.js consumer, where build-time installs are expected.
-
PKGBUILD:29
sudo npm install @yao-pkg/pkg
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 82%): Several real concerns here: (1) 'sudo npm install @yao-pkg/pkg' installs an external npm package (a Node.js binary packager) with root privileges during prepare(), bypassing makepkg's sandboxing and pulling in an undeclared dependency from the npm registry at build time. (2) 'sudo cp main /usr/bin/library-converter' installs files with sudo rather than using the proper install() function with $pkgdir, again bypassing makepkg's package isolation. (3) The build process uses @yao-pkg/pkg to compile main.js into a self-contained binary, which bundles the Node.js runtime and all dependencies into a single opaque executable — the resulting binary's contents are not auditable from the PKGBUILD alone. (4) The source is a git repo from the maintainer's own GitHub, and the compiled binary is what gets installed, not the source directly. The combination of sudo usage inside makepkg, an undeclared external tool fetched at build time, and installation of an opaque compiled binary constitutes a genuine medium-severity supply-chain concern, not a false positive.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Shraga Starbuck7410@gmail.com
pkgname=library-converter-git
pkgver=3.3.0
pkgrel=1
epoch=
pkgdesc="A music library format converter, to make holding archival and compressed copies of music libraries easier."
arch=(x86_64)
url="https://github.com/Starbuck7410/library-converter.git"
license=('GPL')
groups=()
depends=(ffmpeg)
makedepends=(nodejs npm)
checkdepends=()
optdepends=()
provides=(library-converter)
conflicts=()
replaces=()
backup=()
options=()
install=
changelog=
source=("git+$url")
noextract=()
md5sums=('SKIP') #generate with 'makepkg -g'
prepare() {
cd "$srcdir/library-converter"
npm install
sudo npm install @yao-pkg/pkg
}
build() {
cd "$srcdir/library-converter"
pkg main.js --target node22-linux-x64
}
package() {
cd "$srcdir/library-converter"
sudo cp main /usr/bin/library-converter
}
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 |