aleo-studio-bin
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:10
source=("https://aleo-studio-releases.sfo2.digitaloceanspaces.com/latest/aleo-studio_latest_amd64.deb")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD downloads a prebuilt binary .deb from a DigitalOcean Spaces bucket (aleo-studio-releases.sfo2.digitaloceanspaces.com) using a 'latest' URL that is not pinned to a specific version. The md5sums check is present but MD5 is cryptographically weak and, more critically, the URL points to a mutable 'latest' artifact — meaning the checksum will mismatch on any update, but more importantly the source can be silently swapped at the bucket level without a URL change. The package then extracts and installs the binary content directly into pkgdir. This is a classic -bin package pattern, but the combination of: (1) a mutable 'latest' URL rather than a versioned release URL, (2) a personal/project-controlled cloud storage bucket rather than an official distribution channel like GitHub releases, and (3) installation of opaque prebuilt binaries constitutes a genuine medium supply-chain risk. The pkgver() function dynamically extracts the version from the downloaded artifact, which is unusual and confirms the floating 'latest' nature of the source. This is not clearly malicious but represents a real concern about artifact substitution.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Luke Frisken <l.frisken@gmail.com>
pkgname=aleo-studio-bin
pkgver=0.11.0
pkgrel=2
license=('custom')
pkgdesc="The World's First IDE for Zero-Knowledge Proofs."
arch=('x86_64')
url=https://aleo.studio/
depends=(gtk3 libnotify nss libxss libxtst xdg-utils at-spi2-core util-linux-libs libappindicator-gtk3 libsecret)
source=("https://aleo-studio-releases.sfo2.digitaloceanspaces.com/latest/aleo-studio_latest_amd64.deb")
md5sums=('2759d003773cee87b70fa85385a50607')
# extract the exact package version from the control.tar.gz file
pkgver() {
pushd "${srcdir}" > /dev/null
mkdir -p control
tar -xf control.tar.gz -C control
grep -Po "Version: \K.*" control/control
popd > /dev/null
}
package() {
tar -xf data.tar.xz -C "${pkgdir}"
chown root:root -R ../pkg/aleo-studio-bin/opt
chmod 755 -R ../pkg/aleo-studio-bin/opt
chown root:root -R ../pkg/aleo-studio-bin/usr
chmod 755 -R ../pkg/aleo-studio-bin/usr
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | MEDIUM | 2 |
| 2026-08-02 00:16:08 | MEDIUM | 2 |
| 2026-08-01 00:11:18 | MEDIUM | 2 |
| 2026-07-31 00:14:10 | MEDIUM | 2 |
| 2026-07-30 00:17:23 | MEDIUM | 2 |
| 2026-07-29 00:25:53 | MEDIUM | 2 |
| 2026-07-28 00:07:28 | MEDIUM | 2 |
| 2026-07-27 00:24:32 | MEDIUM | 2 |
| 2026-07-26 00:07:32 | MEDIUM | 2 |
| 2026-07-25 00:13:44 | MEDIUM | 2 |
| 2026-07-24 00:02:28 | MEDIUM | 2 |
| 2026-07-23 00:14:47 | MEDIUM | 2 |
| 2026-07-22 00:29:32 | MEDIUM | 2 |
| 2026-07-21 00:24:15 | MEDIUM | 2 |
| 2026-07-20 00:19:49 | MEDIUM | 2 |
| 2026-07-19 00:17:08 | MEDIUM | 2 |
| 2026-07-18 00:14:48 | MEDIUM | 2 |
| 2026-07-17 00:06:16 | MEDIUM | 2 |
| 2026-07-16 00:05:41 | MEDIUM | 2 |
| 2026-07-15 00:09:25 | MEDIUM | 2 |