ride-the-lightning
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:43
npm install -g --only=prod --legacy-peer-deps --cache "${srcdir}/npm-cache" --prefix "${pkgdir}/usr" request --save
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD installs the main RTL application from a signed upstream tarball (with PGP verification via validpgpkeys), which is good. However, line 43 runs a second `npm install -g ... request --save` that fetches the 'request' npm package directly from the npm registry at build time without any checksum or version pin. This is a real supply-chain concern: the 'request' package version is unspecified and unverified, meaning a compromised or malicious version on npm could be silently installed and executed as part of the application. The 'request' package is deprecated and its npm slot could theoretically be squatted or tampered with. This is a genuine medium-severity supply-chain risk — not a false positive — because it involves executed JavaScript code pulled from an external, unverified source with no integrity check.
PKGBUILD
1 offending line(s) highlighted# Maintainer: bitcoinlizard <bitcoinlizard at fastmail dot com>
pkgname=ride-the-lightning
pkgver=0.15.8
pkgrel=1
pkgdesc="RTL is a full function, device agnostic, web user interface to help manage lightning node operations."
arch=(any)
url="https://www.ridethelightning.info"
license=("MIT")
depends=("nodejs>=12")
makedepends=("npm" "jq" "moreutils")
optdepends=("lnd" "core-lightning")
backup=("usr/lib/systemd/system/RTL.service")
install=$pkgname.install
source=("https://github.com/Ride-The-Lightning/RTL/archive/refs/tags/v${pkgver}.tar.gz"
"https://github.com/Ride-The-Lightning/RTL/releases/download/v${pkgver}/v${pkgver}.tar.gz.asc"
"RTL.service"
"ride-the-lightning.install"
"RTL.sysusers"
"RTL.tmpfiles")
#noextract=("v${pkgver}.tar.gz")
sha256sums=('f17746c8e47107676465107f625ef387e42eaa8e0bfd8d15982e81adbaff86a5'
'SKIP'
'8018bd40de57b45b282943c27887d3eba35e3b0bae26a5a4f6b833b3aff66a7e'
'0898aaf7835abde7680b17b4dc9969ae4d1d3e173328e49c57617bd3e3fa0b95'
'96c2cb03de12854d481e9e81f55ecc6c757c7680f3337769f807fe0c12eef60e'
'b3a51675fceae1cfcec447bca09fe89292512670bd3dcda605defcc5d96b66a9')
validpgpkeys=('3E9BD4436C288039CA827A9200C9E2BC2E45666F') # suheb
prepare() {
# Unpacking license file
tar -zxvf "${srcdir}/v${pkgver}.tar.gz" --directory "${srcdir}" "RTL-${pkgver}/LICENSE"
}
package() {
# Installing RTL
npm install -g --only=prod --legacy-peer-deps --cache "${srcdir}/npm-cache" --prefix "${pkgdir}/usr" "${srcdir}/v${pkgver}.tar.gz"
# Installing request dependency
npm install -g --only=prod --legacy-peer-deps --cache "${srcdir}/npm-cache" --prefix "${pkgdir}/usr" request --save
# Installing license file
install -Dm644 "${srcdir}/RTL-${pkgver}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
# Fixing permissions
find "${pkgdir}/usr" -type d -exec chmod 755 {} +
# npm gives ownership of ALL FILES to build user
# https://bugs.archlinux.org/task/63396
chown -R root:root "${pkgdir}"
find "$pkgdir" -type f -name __ngcc_entry_points__.json -execdir sh -c "jq '. |= with_entries(select(.key | test(\"_.+\") | not))' {} | sponge {}" \;
# Removing references to pkgdir
find "${pkgdir}" -type f -name "package.json" -print0 | xargs -0 sed -i "/_where/d"
# Removing references to srcdir
local tmppackage="$(mktemp)"
local pkgjson="${pkgdir}/usr/lib/node_modules/rtl/package.json"
jq '.|=with_entries(select(.key|test("_.+")|not))' "${pkgjson}" > "${tmppackage}"
mv "${tmppackage}" "${pkgjson}"
chmod 644 "${pkgjson}"
# install systemd file
install -Dm644 "$srcdir/RTL.service" "$pkgdir/usr/lib/systemd/system/RTL.service"
install -Dm644 "$srcdir/RTL.sysusers" "$pkgdir/usr/lib/sysusers.d/RTL.conf"
install -Dm644 "$srcdir/RTL.tmpfiles" "$pkgdir/usr/lib/tempfiles.d/RTL.conf"
install -Dm644 "$pkgdir/usr/lib/node_modules/rtl/Sample-RTL-Config.json" "$pkgdir/etc/RTL/Sample-RTL-Config.json"
}
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 |