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
3pkgname=cursor-appimage
4pkgver=3.13.25
5pkgrel=1
6_ver=3.13
7_commit="31e8d61c448c7472e371505838a0fe34083dad55"
8pkgdesc="Cursor AI code editor (AppImage, extracted)"
9arch=('x86_64')
10url="https://www.cursor.com"
11license=('custom')
12depends=('glibc' 'gtk3' 'nss' 'libxss' 'alsa-lib')
13conflicts=('cursor-bin')
14provides=('cursor')
15options=(!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
21source=(
22 "Cursor-${pkgver}.AppImage::https://downloads.cursor.com/production/${_commit}/linux/x64/Cursor-${pkgver}-x86_64.AppImage"
23)
24
25sha512sums=('b9bbfaf06020a63a6028fd7072b28e17ac6999d890ff09a4fe3baa5fc9a2054c37c9ba0f35e37a28b63776ac27aab7100a8713a380617dc657a95c0e8fd51a57')
26
27prepare() {
28 cd "${srcdir}"
29 chmod +x Cursor-${pkgver}.AppImage
30 ./Cursor-${pkgver}.AppImage --appimage-extract
31}
32
33package() {
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
41HERE="$(cd "$(dirname "$0")" && pwd)"
42
43export PATH="$HERE/usr/bin:$PATH"
44export LD_LIBRARY_PATH="$HERE/usr/lib:$HERE/usr/lib64:$HERE/lib:$LD_LIBRARY_PATH"
45export XDG_DATA_DIRS="$HERE/usr/share:$XDG_DATA_DIRS"
46
47exec "$HERE/usr/share/cursor/cursor" "$@"
48EOF
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
60exec /opt/cursor/AppRun "$@"
61EOF
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)SeverityRules
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

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion