athas
maintainer lapsus
· 1 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The npx command runs 'vite build' on the project's own source, which is a standard build step from a trusted, versioned GitHub release; the worst case of a malicious swap is limited to code execution during build, but the source is verifiable and checksummed.
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 'vite build' on the project's own source, which is a standard build step from a trusted, versioned GitHub release; the worst case of a malicious swap is limited to code execution during build, but the source is verifiable and checksummed.
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:70
npx vite build
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Juan Roa <hello@juanroa.dev>
2
pkgname=athas
3
pkgver=0.10.0
4
pkgrel=1
5
pkgdesc="Lightweight code editor built with React, TypeScript, and Tauri"
6
arch=('x86_64' 'aarch64')
7
url="https://athas.dev"
8
license=('AGPL-3.0-or-later')
9
depends=('gtk3' 'hicolor-icon-theme' 'libayatana-appindicator' 'openssl' 'webkit2gtk-4.1')
10
makedepends=('bun' 'cmake' 'npm' 'rust')
11
conflicts=('athas-bin')
12
_source_name=athas
13
source=("${_source_name}-${pkgver}.tar.gz::https://github.com/athasdev/athas/archive/refs/tags/v${pkgver}.tar.gz"
14
'0001-add-missing-js-deps-and-swift-cli-override.patch'
15
'0002-add-packaging-tree-sitter-bootstrap-script.patch')
16
sha256sums=('0d7c6a101e5c01b4c84a0da787ada65e55589a26343d3228fffe36ec40d26a55'
17
'05b94eeed03e6631b704b91206df3529a391f74317b0fcb3897cd554ad58918b'
18
'bc65eec041814fbab5b7e4336d633abe6975227cd630e92ddf07f69a3624e492')
19
20
_builddir="${_source_name}-${pkgver}"
21
22
latestver() {
23
gh api --paginate repos/athasdev/athas/releases --jq \
24
'.[] | select(.prerelease == false and .draft == false) | .tag_name' |
25
sed -nE 's/^v?([0-9]+(\.[0-9]+)*)$/\1/p' |
26
sort -V |
27
tail -1
28
}
29
30
prepare() {
31
cd "${_builddir}"
32
33
local cargo_home="${srcdir}/cargo"
34
35
rm -f scripts/bootstrap-tree-sitter-cli.sh
36
37
patch -Np1 < "${srcdir}/0001-add-missing-js-deps-and-swift-cli-override.patch"
38
patch -Np1 < "${srcdir}/0002-add-packaging-tree-sitter-bootstrap-script.patch"
39
40
export CARGO_HOME="${cargo_home}"
41
mkdir -p "${cargo_home}"
42
}
43
44
build() {
45
cd "${_builddir}"
46
47
local cargo_home="${srcdir}/cargo"
48
local cargo_target="${srcdir}/target"
49
local debug_prefix="/usr/src/debug/${pkgname}"
50
51
export CFLAGS="${CFLAGS/-flto=auto/}"
52
export CXXFLAGS="${CXXFLAGS/-flto=auto/}"
53
export LDFLAGS="${LDFLAGS/-flto=auto/}"
54
export CFLAGS="${CFLAGS} -ffile-prefix-map=${srcdir}=${debug_prefix}"
55
export CXXFLAGS="${CXXFLAGS} -ffile-prefix-map=${srcdir}=${debug_prefix}"
56
export RUSTFLAGS="${RUSTFLAGS:+${RUSTFLAGS} }--remap-path-prefix=${srcdir}=${debug_prefix}"
57
export CARGO_HOME="${cargo_home}"
58
export CARGO_TARGET_DIR="${cargo_target}"
59
export OPENSSL_NO_VENDOR=1
60
export npm_config_fetch_retries=5
61
export npm_config_fetch_retry_maxtimeout=300000
62
export npm_config_fetch_retry_mintimeout=20000
63
export CXXFLAGS="${CXXFLAGS} -std=gnu++20"
64
65
npm install --allow-git=all --legacy-peer-deps --install-strategy=nested --ignore-scripts
66
bash scripts/bootstrap-tree-sitter-cli.sh "${CARCH}"
67
68
npm rebuild tree-sitter-swift
69
bun scripts/postinstall.ts
70
npx vite build
71
cargo build --release --manifest-path src-tauri/Cargo.toml
72
}
73
74
package() {
75
cd "${_builddir}"
76
77
local cargo_target="${srcdir}/target"
78
79
install -Dm755 "${cargo_target}/release/athas" "${pkgdir}/usr/bin/${pkgname}"
80
install -d "${pkgdir}/usr/lib/Athas"
81
cp -r src/extensions/bundled "${pkgdir}/usr/lib/Athas/"
82
83
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
84
install -Dm644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md"
85
86
install -Dm644 src-tauri/icons/32x32.png "${pkgdir}/usr/share/icons/hicolor/32x32/apps/${pkgname}.png"
87
install -Dm644 src-tauri/icons/128x128.png "${pkgdir}/usr/share/icons/hicolor/128x128/apps/${pkgname}.png"
88
install -Dm644 src-tauri/icons/128x128@2x.png "${pkgdir}/usr/share/icons/hicolor/256x256/apps/${pkgname}.png"
89
install -Dm644 src-tauri/icons/icon.png "${pkgdir}/usr/share/icons/hicolor/512x512/apps/${pkgname}.png"
90
91
install -Dm644 /dev/stdin "${pkgdir}/usr/share/applications/${pkgname}.desktop" <<'EOF'
92
[Desktop Entry]
93
Type=Application
94
Name=Athas
95
Comment=Lightweight code editor built with Tauri
96
Exec=athas %U
97
Icon=athas
98
Terminal=false
99
Categories=Development;IDE;
100
EOF
101
}
102
Changes since previous scan
--- PKGBUILD @ 2026-07-29 00:25+++ PKGBUILD @ 2026-08-03 00:08@@ -1,6 +1,6 @@ # Maintainer: Juan Roa <hello@juanroa.dev> pkgname=athas-pkgver=0.9.0+pkgver=0.10.0 pkgrel=1 pkgdesc="Lightweight code editor built with React, TypeScript, and Tauri" arch=('x86_64' 'aarch64')@@ -13,7 +13,7 @@ source=("${_source_name}-${pkgver}.tar.gz::https://github.com/athasdev/athas/archive/refs/tags/v${pkgver}.tar.gz" '0001-add-missing-js-deps-and-swift-cli-override.patch' '0002-add-packaging-tree-sitter-bootstrap-script.patch')-sha256sums=('335dab9e1190a15771ecbcb91dadcd4a0d76c410f9d8ca36eb982d2fb7f5e178'+sha256sums=('0d7c6a101e5c01b4c84a0da787ada65e55589a26343d3228fffe36ec40d26a55' '05b94eeed03e6631b704b91206df3529a391f74317b0fcb3897cd554ad58918b' 'bc65eec041814fbab5b7e4336d633abe6975227cd630e92ddf07f69a3624e492') Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | LOW | 2 |
| 2026-08-02 00:16:08 | LOW | 2 |
| 2026-08-01 00:11:18 | LOW | 2 |
| 2026-07-31 00:14:10 | LOW | 2 |
| 2026-07-30 00:17:23 | LOW | 2 |
| 2026-07-29 23:13:22 | MEDIUM | 1 |
| 2026-07-29 00:25:53 | LOW | 2 |
| 2026-07-28 00:07:28 | LOW | 2 |
| 2026-07-27 00:24:32 | LOW | 2 |
| 2026-07-26 00:07:32 | LOW | 2 |
| 2026-07-25 00:13:44 | LOW | 2 |
| 2026-07-24 00:02:28 | LOW | 2 |
| 2026-07-23 00:14:47 | LOW | 2 |
| 2026-07-22 00:29:32 | LOW | 2 |
| 2026-07-21 00:24:15 | LOW | 2 |
| 2026-07-20 00:19:49 | LOW | 2 |
| 2026-07-19 00:17:08 | LOW | 2 |
| 2026-07-18 00:14:48 | LOW | 2 |
| 2026-07-17 00:06:16 | LOW | 2 |
| 2026-07-16 19:52:44 | MEDIUM | 1 |