scalpel-poe
LOW
maintainer scalpelpoe
1 votes
scanned 2026-09-17 00:27:14.276658
Why flagged
The npx command runs electron-builder on the locally built project, not a remote package, so it does not execute untrusted remote code.
Triggered rules
Low
AI review downgraded a static finding
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The npx command runs electron-builder on the locally built project, not a remote package, so it does not execute untrusted remote code.
1 higher static finding superseded - not the current verdict (shown for transparency)
Medium
npx/bunx/deno executes a remote package
remote_code_tool
`npx`/`bunx`/`pnpm dlx`/`deno run <url>` downloads AND runs a remote package at build time — the moral equivalent of piping a download into a shell. Severity downgraded: Node.js consumer context.
-
PKGBUILD:61
npx electron-builder --linux AppImage --x64 --publish never
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Scalpel <scalpelpoe at gmail dot com>
2
# Contributor: Kristofers Solo <dev at kristofers dot xyz>
3
4
pkgname=scalpel-poe
5
pkgver=1.0.4
6
pkgrel=1
7
pkgdesc="Path of Exile's First Fourth-Party Tool"
8
arch=("x86_64")
9
url="https://github.com/scalpelpoe/scalpel"
10
license=("AGPL-3.0-only")
11
options=(!strip)
12
depends=(
13
"fuse2"
14
)
15
makedepends=(
16
"git"
17
"nodejs-lts-jod"
18
"npm"
19
"python"
20
"python-setuptools"
21
)
22
provides=("scalpel-poe")
23
conflicts=("scalpel-poe-bin" "scalpel-poe-git")
24
_upstream_version="${pkgver/_/-}"
25
source=(
26
"$pkgname-$_upstream_version.tar.gz::$url/archive/refs/tags/v$_upstream_version.tar.gz"
27
"scalpel-poe.sh"
28
"scalpel-poe.desktop"
29
)
30
sha256sums=('f256dc3568de4765d518c0fc422d48baad5a8a24c075a0ef38bdf86f84490a52'
31
'aec6807cc11a1f0f172577d5d24744d457c2d52fd51c4b92d1e6b8bfbb943b1f'
32
'be4904493f9322e59649768c209eeeed71ebf8f4f92321614967f749807794dc')
33
34
_check_node_version() {
35
local major
36
major="$(node -p 'process.versions.node.split(".")[0]')"
37
38
if [[ "$major" != "22" ]]; then
39
echo "error: Node.js 22 is required, got $(node --version)" >&2
40
exit 1
41
fi
42
}
43
44
_enter_builddir() {
45
cd "$srcdir/scalpel-$_upstream_version" || return 1
46
_check_node_version || return 1
47
48
export SHARP_IGNORE_GLOBAL_LIBVIPS=1
49
}
50
51
prepare() {
52
_enter_builddir
53
54
npm ci --allow-git=root
55
}
56
57
build() {
58
_enter_builddir
59
60
npm run build
61
npx electron-builder --linux AppImage --x64 --publish never
62
}
63
64
package() {
65
cd "$srcdir/scalpel-$_upstream_version"
66
67
install -Dm755 "dist/Scalpel.AppImage" "$pkgdir/opt/scalpel-poe/Scalpel.AppImage"
68
69
install -Dm755 "$srcdir/scalpel-poe.sh" "$pkgdir/usr/bin/scalpel-poe"
70
install -Dm644 "$srcdir/scalpel-poe.desktop" "$pkgdir/usr/share/applications/scalpel-poe.desktop"
71
install -Dm644 resources/icon.png "$pkgdir/usr/share/pixmaps/scalpel-poe.png"
72
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
73
}
74
Changes since previous scan
--- PKGBUILD @ 2026-08-30 00:04+++ PKGBUILD @ 2026-09-17 00:27@@ -2,7 +2,7 @@ # Contributor: Kristofers Solo <dev at kristofers dot xyz> pkgname=scalpel-poe-pkgver=1.0.3+pkgver=1.0.4 pkgrel=1 pkgdesc="Path of Exile's First Fourth-Party Tool" arch=("x86_64")@@ -27,7 +27,7 @@ "scalpel-poe.sh" "scalpel-poe.desktop" )-sha256sums=('19fd89cc2f0044ee8689037b96215f3a0410063c2c401bcd53694e88106359a3'+sha256sums=('f256dc3568de4765d518c0fc422d48baad5a8a24c075a0ef38bdf86f84490a52' 'aec6807cc11a1f0f172577d5d24744d457c2d52fd51c4b92d1e6b8bfbb943b1f' 'be4904493f9322e59649768c209eeeed71ebf8f4f92321614967f749807794dc') Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 17:43:42 | Medium | 1 |
| 2026-08-30 00:04:14 | Low | 2 |