cursor-early-access-bin
The package downloads prebuilt .deb files from the official cursor.com production domain, which is the project's own release infrastructure; while checksums are skipped, the source host is legitimate and the package installs only the vendor-provided binary and metadata, posing no active threat.
Triggered rules
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 prebuilt .deb files from the official cursor.com production domain, which is the project's own release infrastructure; while checksums are skipped, the source host is legitimate and the package installs only the vendor-provided binary and metadata, posing no active threat.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:33
"cursor_${_upstream_pkgver}_amd64.deb::https://downloads.cursor.com/production/${_commit}/linux/x64/deb/amd64/deb/cursor_${_upstream_pkgver}_amd64.deb"
PKGBUILD
1 offending line(s) highlighted# Maintainer: AugusDogus <augie@linux.com>
pkgname=cursor-early-access-bin
pkgver=3.20.21
_upstream_pkgver=3.20.21
pkgrel=1
pkgdesc='AI-first coding environment (early access channel, bundled Electron)'
arch=('x86_64' 'aarch64')
url="https://www.cursor.com"
license=('LicenseRef-Cursor_EULA')
provides=('cursor')
conflicts=('cursor-bin' 'cursor-nightly-bin' 'cursor-ide-bin')
depends=(
'alsa-lib'
'dbus'
'gcc-libs'
'gtk3'
'libdrm'
'libsecret'
'libxkbfile'
'mesa'
'nss'
'xdg-utils'
)
optdepends=(
'libnotify: desktop notifications'
'org.freedesktop.secrets: credential storage via SecretService'
'libdbusmenu-glib: KDE global menu support'
)
options=(!strip !debug)
_commit=f09fca384ceca23f7bf21f9c23655b162641d747
source_x86_64=(
"cursor_${_upstream_pkgver}_amd64.deb::https://downloads.cursor.com/production/${_commit}/linux/x64/deb/amd64/deb/cursor_${_upstream_pkgver}_amd64.deb"
)
source_aarch64=(
"cursor_${_upstream_pkgver}_arm64.deb::https://downloads.cursor.com/production/${_commit}/linux/arm64/deb/arm64/deb/cursor_${_upstream_pkgver}_arm64.deb"
)
source=(
cursor.desktop
cursor-launcher.sh
)
sha512sums_x86_64=('SKIP')
sha512sums_aarch64=('SKIP')
sha512sums=(
'037aa5d878eddb06fc1d5be788e7bc64545773decacb34228053be746dfc33237371ad49cc331dac8e3437d7d885a9bc1564d0f114fc22e308827b33d0c55ad8'
'9defecd35fd033a484642732605264cc00faf5791d852234d9705bf9ac005c76173780cd496208e4150685ac9ddbb73c8eb87cd5141526dd4521d455342e8233')
sha512sums_x86_64[0]=8329138d207309d16410f1cb58da18eea1a034a35f2bdd022ef9b373bb8f1b3d80e489e65256b7283c40e10da77962d158bfa3a64e742337a942633810d80dbe
sha512sums_aarch64[0]=fe2e2bb77901d24bc2e21b1528b8fef2f75e5b68078f47ea96109f2903dea730a074b851a56f9a0d5404dc35243e2a7f156cbd24a5c687df74590a9b93ce0bad
noextract=(
"cursor_${_upstream_pkgver}_amd64.deb"
"cursor_${_upstream_pkgver}_arm64.deb"
)
package() {
case "$CARCH" in
x86_64) _deb="cursor_${_upstream_pkgver}_amd64.deb" ;;
aarch64) _deb="cursor_${_upstream_pkgver}_arm64.deb" ;;
esac
# Extract full deb — keep bundled Electron intact.
bsdtar -xOf "$_deb" data.tar.xz |
tar -xJf - -C "$pkgdir"
# Fix zsh completion path for Arch
if [[ -d "$pkgdir/usr/share/zsh/vendor-completions" ]]; then
mv "$pkgdir/usr/share/zsh/vendor-completions" \
"$pkgdir/usr/share/zsh/site-functions"
fi
install -Dm644 "$srcdir/cursor.desktop" \
"$pkgdir/usr/share/applications/cursor.desktop"
install -Dm755 "$srcdir/cursor-launcher.sh" "$pkgdir/usr/bin/cursor"
_license="$pkgdir/usr/share/cursor/resources/app/LICENSE.txt"
if [[ ! -f "$_license" ]]; then
_license=$(find "$pkgdir/usr/share/cursor" -maxdepth 8 -type f \( -name 'LICENSE.txt' -o -name 'LICENSE' \) -print -quit 2>/dev/null)
fi
if [[ -f "$_license" ]]; then
install -Dm644 "$_license" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
else
echo "Warning: Cursor license file not found in .deb; skipping /usr/share/licenses install" >&2
fi
if [[ -f "$pkgdir/usr/share/cursor/chrome-sandbox" ]]; then
chmod 4755 "$pkgdir/usr/share/cursor/chrome-sandbox"
fi
}
Changes since previous scan
--- PKGBUILD @ 2026-09-13 00:19+++ PKGBUILD @ 2026-09-17 00:27@@ -1,8 +1,8 @@ # Maintainer: AugusDogus <augie@linux.com> pkgname=cursor-early-access-bin-pkgver=3.20.15-_upstream_pkgver=3.20.15+pkgver=3.20.21+_upstream_pkgver=3.20.21 pkgrel=1 pkgdesc='AI-first coding environment (early access channel, bundled Electron)' arch=('x86_64' 'aarch64')@@ -28,7 +28,7 @@ 'libdbusmenu-glib: KDE global menu support' ) options=(!strip !debug)-_commit=6691559b11c7056a0c0cbd75aa399b6ffed8c5bc+_commit=f09fca384ceca23f7bf21f9c23655b162641d747 source_x86_64=( "cursor_${_upstream_pkgver}_amd64.deb::https://downloads.cursor.com/production/${_commit}/linux/x64/deb/amd64/deb/cursor_${_upstream_pkgver}_amd64.deb" )@@ -44,8 +44,8 @@ sha512sums=( '037aa5d878eddb06fc1d5be788e7bc64545773decacb34228053be746dfc33237371ad49cc331dac8e3437d7d885a9bc1564d0f114fc22e308827b33d0c55ad8' '9defecd35fd033a484642732605264cc00faf5791d852234d9705bf9ac005c76173780cd496208e4150685ac9ddbb73c8eb87cd5141526dd4521d455342e8233')-sha512sums_x86_64[0]=7c3cb5cd7506520eefd74665ae915d4b95a293d04b8e34515dfdb981390491101091853ae2c837bcad5b85fe65cacba5c8eb2168e84a158eba7b44028f6bab56-sha512sums_aarch64[0]=e5f37d50454f8d3f42bf7a75ff4ea5de254f333b90c9e918550c48bfd5ae7a9596a25a9a0af686866a8c318ddf7890b57e07b4e61e74e22538f83043e8a9ae2c+sha512sums_x86_64[0]=8329138d207309d16410f1cb58da18eea1a034a35f2bdd022ef9b373bb8f1b3d80e489e65256b7283c40e10da77962d158bfa3a64e742337a942633810d80dbe+sha512sums_aarch64[0]=fe2e2bb77901d24bc2e21b1528b8fef2f75e5b68078f47ea96109f2903dea730a074b851a56f9a0d5404dc35243e2a7f156cbd24a5c687df74590a9b93ce0bad noextract=( "cursor_${_upstream_pkgver}_amd64.deb" "cursor_${_upstream_pkgver}_arm64.deb"@@ -158,3 +158,5 @@ ++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 23:15:25 | Medium | 1 |
| 2026-09-13 00:19:54 | Medium | 2 |
| 2026-09-12 07:11:01 | Medium | 2 |
| 2026-09-12 03:10:21 | Medium | 1 |
| 2026-09-12 01:24:32 | Medium | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 01:21:31 | Medium | 1 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 07:20:26 | Medium | 1 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 01:18:32 | Medium | 1 |
| 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 |