cursor-early-access-bin
The package downloads a prebuilt .deb from a non-whitelisted but project-owned host (downloads.cursor.com), which is an unverifiable executable artifact; however, it is the official release channel for Cursor, and the checksums are provided but skipped, increasing supply-chain risk if the source were swapped.
Triggered rules
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"
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 95%): The package downloads a prebuilt .deb from a non-whitelisted but project-owned host (downloads.cursor.com), which is an unverifiable executable artifact; however, it is the official release channel for Cursor, and the checksums are provided but skipped, increasing supply-chain risk if the source were swapped.
PKGBUILD
1 offending line(s) highlighted# Maintainer: AugusDogus <augie@linux.com>
pkgname=cursor-early-access-bin
pkgver=3.28.5
_upstream_pkgver=3.28.5
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=18b4e7e5fb7fc450d7797e36c596c31aedaf59f2
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]=641fc300186e2495aea822f2179ed2739e370a679f985aedf094e9c5eda8bb4a94f7ccef9926d5f467b18f7df8ec303dcb390681c1ebea63aee1f25350fa71ff
sha512sums_aarch64[0]=89729347677b3310fc14390b53bdfffcb361271c1acff11b7b557fb3986c4113858defdbbdaf5708338c25dbbd599674f8071352b4ca8d5ef60b6748b7694c92
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-10-29 00:13+++ PKGBUILD @ 2026-11-01 00:21@@ -1,8 +1,8 @@ # Maintainer: AugusDogus <augie@linux.com> pkgname=cursor-early-access-bin-pkgver=3.27.22-_upstream_pkgver=3.27.22+pkgver=3.28.5+_upstream_pkgver=3.28.5 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=b1aa50cb6db84fd3e8c808259cb172ea73425c1f+_commit=18b4e7e5fb7fc450d7797e36c596c31aedaf59f2 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]=9aeaade82e088b7d02be764c3d82d33043bdbe3b986b064bd41aa2d22155fcee26d292ed64a8b1957e1face1c01817f8d45f0b141b3e014772af62641103ca2c-sha512sums_aarch64[0]=644bbfd8efdae50e86c3e58860a054ab493b03573dbe877331f65cbf9d04f97f3fa9f1bd1417e117ca5bb999b45887fd2192b0e74b65e7c343eba7f68e3bfce7+sha512sums_x86_64[0]=641fc300186e2495aea822f2179ed2739e370a679f985aedf094e9c5eda8bb4a94f7ccef9926d5f467b18f7df8ec303dcb390681c1ebea63aee1f25350fa71ff+sha512sums_aarch64[0]=89729347677b3310fc14390b53bdfffcb361271c1acff11b7b557fb3986c4113858defdbbdaf5708338c25dbbd599674f8071352b4ca8d5ef60b6748b7694c92 noextract=( "cursor_${_upstream_pkgver}_amd64.deb" "cursor_${_upstream_pkgver}_arm64.deb"@@ -183,3 +183,4 @@ +Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Medium | 2 |
| 2026-10-31 00:07:41 | Medium | 2 |
| 2026-10-30 00:29:30 | Medium | 2 |
| 2026-10-29 01:51:16 | Medium | 2 |
| 2026-10-29 00:13:55 | Medium | 2 |
| 2026-10-28 21:50:44 | Medium | 2 |
| 2026-10-28 00:06:54 | Medium | 2 |
| 2026-10-27 05:46:44 | Medium | 2 |
| 2026-10-27 00:23:28 | Medium | 2 |
| 2026-10-26 01:43:34 | Medium | 2 |
| 2026-10-26 00:12:40 | Medium | 2 |
| 2026-10-25 00:20:48 | Medium | 2 |
| 2026-10-24 00:14:55 | Medium | 2 |
| 2026-10-23 05:36:55 | Medium | 2 |
| 2026-10-23 00:02:19 | Medium | 2 |
| 2026-10-22 05:34:05 | Medium | 2 |
| 2026-10-22 00:13:10 | Medium | 2 |
| 2026-10-21 15:32:06 | Medium | 2 |
| 2026-10-21 00:12:50 | Medium | 2 |
| 2026-10-20 13:28:00 | Medium | 2 |