cursor-appimage
maintainer ali.molaei
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package downloads a prebuilt AppImage from the official vendor's domain (cursor.com), extracts it, and repackages the contents with minor fixes; the source host is not whitelisted but is plausibly official, and no untrusted remote code execution occurs.
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 package downloads a prebuilt AppImage from the official vendor's domain (cursor.com), extracts it, and repackages the contents with minor fixes; the source host is not whitelisted but is plausibly official, and no untrusted remote code execution occurs.
2 higher static findings superseded - not the current verdict (shown for transparency)
MEDIUM
source=() URL on a non-standard host
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:22
"Cursor-${pkgver}.AppImage::https://downloads.cursor.com/production/${_commit}/linux/x64/Cursor-${pkgver}-x86_64.AppImage"
MEDIUM
Recently orphaned & re-adopted
orphaned_readopted
This package was orphaned and re-adopted within the last 30 days — a window where ownership transfers can introduce malicious changes.
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: kewl fft <kewl@alto.eu.org>
2
3
pkgname=cursor-appimage
4
pkgver=3.13.25
5
pkgrel=1
6
_ver=3.13
7
_commit="31e8d61c448c7472e371505838a0fe34083dad55"
8
pkgdesc="Cursor AI code editor (AppImage, extracted)"
9
arch=('x86_64')
10
url="https://www.cursor.com"
11
license=('custom')
12
depends=('glibc' 'gtk3' 'nss' 'libxss' 'alsa-lib')
13
conflicts=('cursor-bin')
14
provides=('cursor')
15
options=(!strip)
16
_watch=(
17
'https://api2.cursor.sh/updates/download/golden/linux-x64/cursor/${_ver}' 'header' 'regex' 'Cursor-([0-9.]+)-x86_64.AppImage' 'pkgver'
18
'https://api2.cursor.sh/updates/download/golden/linux-x64/cursor/${_ver}' 'header' 'regex' 'location:.*production/([a-f0-9]+)/' '_commit'
19
)
20
21
source=(
22
"Cursor-${pkgver}.AppImage::https://downloads.cursor.com/production/${_commit}/linux/x64/Cursor-${pkgver}-x86_64.AppImage"
23
)
24
25
sha512sums=('b9bbfaf06020a63a6028fd7072b28e17ac6999d890ff09a4fe3baa5fc9a2054c37c9ba0f35e37a28b63776ac27aab7100a8713a380617dc657a95c0e8fd51a57')
26
27
prepare() {
28
cd "${srcdir}"
29
chmod +x Cursor-${pkgver}.AppImage
30
./Cursor-${pkgver}.AppImage --appimage-extract
31
}
32
33
package() {
34
install -d "${pkgdir}/opt/cursor"
35
cp -a squashfs-root/* "${pkgdir}/opt/cursor/"
36
37
# --- FIX APPIMAGE ---
38
# Replace broken AppRun with working launcher
39
cat > "${pkgdir}/opt/cursor/AppRun" <<'EOF'
40
#!/bin/bash
41
HERE="$(cd "$(dirname "$0")" && pwd)"
42
43
export PATH="$HERE/usr/bin:$PATH"
44
export LD_LIBRARY_PATH="$HERE/usr/lib:$HERE/usr/lib64:$HERE/lib:$LD_LIBRARY_PATH"
45
export XDG_DATA_DIRS="$HERE/usr/share:$XDG_DATA_DIRS"
46
47
exec "$HERE/usr/share/cursor/cursor" "$@"
48
EOF
49
50
chmod +x "${pkgdir}/opt/cursor/AppRun"
51
52
# chrome sandbox (required by Electron)
53
if [[ -f "${pkgdir}/opt/cursor/chrome-sandbox" ]]; then
54
chmod 4755 "${pkgdir}/opt/cursor/chrome-sandbox"
55
fi
56
57
# CLI launcher
58
install -Dm755 /dev/stdin "${pkgdir}/usr/bin/cursor" <<'EOF'
59
#!/bin/bash
60
exec /opt/cursor/AppRun "$@"
61
EOF
62
63
# Desktop entry
64
install -Dm644 squashfs-root/cursor.desktop \
65
"${pkgdir}/usr/share/applications/cursor.desktop"
66
67
sed -i 's|^Exec=.*|Exec=cursor %F|' \
68
"${pkgdir}/usr/share/applications/cursor.desktop"
69
70
sed -i 's|^Icon=.*|Icon=cursor|' \
71
"${pkgdir}/usr/share/applications/cursor.desktop"
72
73
# Icons
74
for size in 16 32 48 64 128 256 512; do
75
icon="squashfs-root/usr/share/icons/hicolor/${size}x${size}/apps/cursor.png"
76
[[ -f "$icon" ]] && install -Dm644 "$icon" \
77
"${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/cursor.png"
78
done
79
}
80
Changes since previous scan
--- PKGBUILD @ 2026-07-30 00:17+++ PKGBUILD @ 2026-08-03 00:08@@ -1,10 +1,10 @@ # Maintainer: kewl fft <kewl@alto.eu.org> pkgname=cursor-appimage-pkgver=3.13.21+pkgver=3.13.25 pkgrel=1 _ver=3.13-_commit="55434bd8062ece6fee083b82beed2aee42d253f3"+_commit="31e8d61c448c7472e371505838a0fe34083dad55" pkgdesc="Cursor AI code editor (AppImage, extracted)" arch=('x86_64') url="https://www.cursor.com"@@ -22,7 +22,7 @@ "Cursor-${pkgver}.AppImage::https://downloads.cursor.com/production/${_commit}/linux/x64/Cursor-${pkgver}-x86_64.AppImage" ) -sha512sums=('87f50e1ed97442b3e155a4d34e81b742976678b60b3bad6d2a8d8e91c615f5ad0d4e33afd22a4010cd5782e074f99eacfdb193d69d846a5d90c199eb0239bc89')+sha512sums=('b9bbfaf06020a63a6028fd7072b28e17ac6999d890ff09a4fe3baa5fc9a2054c37c9ba0f35e37a28b63776ac27aab7100a8713a380617dc657a95c0e8fd51a57') prepare() { cd "${srcdir}"Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | LOW | 3 |
| 2026-08-02 00:16:08 | LOW | 3 |
| 2026-08-01 00:11:18 | LOW | 3 |
| 2026-07-31 00:14:10 | LOW | 3 |
| 2026-07-30 09:14:07 | MEDIUM | 2 |
| 2026-07-30 00:17:23 | MEDIUM | 3 |
| 2026-07-29 00:25:53 | MEDIUM | 3 |
| 2026-07-28 07:37:32 | MEDIUM | 3 |
| 2026-07-28 00:07:28 | MEDIUM | 3 |
| 2026-07-27 00:24:32 | MEDIUM | 3 |
| 2026-07-26 00:07:32 | MEDIUM | 3 |
| 2026-07-25 09:29:42 | MEDIUM | 3 |
| 2026-07-25 00:13:44 | MEDIUM | 3 |
| 2026-07-24 00:02:28 | MEDIUM | 3 |
| 2026-07-23 09:22:54 | MEDIUM | 3 |
| 2026-07-23 00:14:47 | LOW | 3 |
| 2026-07-22 00:29:32 | LOW | 3 |
| 2026-07-21 00:24:15 | LOW | 3 |
| 2026-07-20 00:19:49 | LOW | 3 |
| 2026-07-19 00:17:08 | LOW | 3 |