winboat-electron
LOW
maintainer tiziodcaio
1 votes
scanned 2026-09-17 00:27:14.276658
Why flagged
The npx command runs electron-builder from the project's own dependencies, 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 90%): The npx command runs electron-builder from the project's own dependencies, 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:66
npx electron-builder --linux --dir \
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Matt Quintanilla <matt @ matt quintanilla .xyz>
2
# Maintainer: ArjixWasTaken <me@arjix.dev>
3
# Contributor: tiziodcaio <d dot bass05 at pm dot me>
4
5
_pkgname=winboat
6
pkgname=winboat-electron
7
pkgver=0.9.0
8
pkgrel=6
9
pkgdesc="Run Windows apps on Linux with seamless integration"
10
arch=('x86_64')
11
url="https://www.winboat.app"
12
license=('MIT')
13
_electron=electron43
14
depends=(
15
'alsa-lib'
16
'docker'
17
'docker-compose'
18
'freerdp'
19
'gtk3'
20
'nss'
21
"$_electron"
22
)
23
makedepends=(
24
'git'
25
'npm'
26
'go'
27
'zip'
28
'imagemagick'
29
'asar'
30
)
31
options=('!strip')
32
source=("git+https://github.com/winboat-org/winboat.git#tag=v$pkgver")
33
sha256sums=('11051ae91c399ccc75ef69910d4e8a526f6cc50210f9c70525829d5017715cce')
34
provides=('winboat')
35
conflicts=('winboat')
36
37
prepare(){
38
cd "$_pkgname"
39
40
## don't use resourcesPath
41
sed --in-place -e "s/process\.resourcesPath, \"/\"\/usr\/lib\/winboat\//g" ./src/renderer/lib/*.ts
42
43
export npm_config_cache="$srcdir/npm_cache"
44
npm i --allow-git=all
45
46
npm update node-abi
47
}
48
49
build() {
50
cd "$_pkgname"
51
52
export GOPATH="$srcdir/gopath"
53
export CGO_CPPFLAGS="${CPPFLAGS}"
54
export CGO_CFLAGS="${CFLAGS}"
55
export CGO_CXXFLAGS="${CXXFLAGS}"
56
export CGO_LDFLAGS="${LDFLAGS}"
57
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
58
59
#build:linux-gs
60
bash build-guest-server.sh
61
node scripts/build.ts
62
63
rm -rf main
64
cp -r build/main main
65
66
npx electron-builder --linux --dir \
67
-c.electronDist=/usr/lib/"$_electron" \
68
-c.electronVersion="$(</usr/lib/${_electron}/version)"
69
70
# Clean module cache for makepkg -C
71
go clean -modcache
72
73
mkdir -p dist/.icon-set
74
for i in 16 32 48 64 128 256 512; do
75
magick icons/winboat_logo.svg -resize "${i}x${i}" "dist/.icon-set/icon_${i}x${i}.png"
76
done
77
}
78
79
package() {
80
cd "$_pkgname"
81
install -Dm755 /dev/null "${pkgdir}/usr/bin/$_pkgname"
82
cat >>"${pkgdir}/usr/bin/$_pkgname" <<EOD
83
#! /usr/bin/sh
84
exec $_electron /usr/lib/$_pkgname/app.asar "\$@"
85
EOD
86
install -d "$pkgdir/usr/lib/$_pkgname/"
87
88
cp -a dist/linux-unpacked/resources/** "$pkgdir/usr/lib/$_pkgname"
89
90
for i in 16 32 48 64 128 256 512; do
91
install -Dm644 dist/.icon-set/icon_${i}x${i}.png \
92
"$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$_pkgname.png"
93
done
94
95
install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$_pkgname/"
96
install -Dm644 /dev/stdin "$pkgdir/usr/share/applications/$_pkgname.desktop" <<EOF
97
[Desktop Entry]
98
Name=WinBoat
99
Exec=/usr/bin/$_pkgname
100
Icon=$_pkgname
101
Terminal=false
102
Type=Application
103
Comment=Run Windows apps on Linux with seamless integration
104
EOF
105
}
106
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 00:04:14 | Low | 2 |
| 2026-08-29 00:29:17 | Low | 2 |