xod
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:12
source=("https://www.googleapis.com/download/storage/v1/b/releases.xod.io/o/v0.38.0%2Fxod-client-electron-0.38.0.x86_64.rpm?generation=1615553616000093&alt=media")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 78%): The PKGBUILD downloads a prebuilt RPM (containing an Electron application binary) from Google Cloud Storage (googleapis.com), which is the official GCS API endpoint for a bucket named 'releases.xod.io'. While GCS is a legitimate hosting platform, this is not the upstream project's canonical release host (e.g., GitHub releases) and the bucket ownership cannot be independently verified without additional context. The binary is an Electron app that gets directly installed and executed by end users. A sha256sum is provided and pinned, which mitigates substitution risk somewhat, but the generation parameter in the URL and the unofficial hosting location mean that if the bucket were compromised or the checksum were changed in a PKGBUILD update, malicious code could be executed. The RPM is extracted and its contents (opt/, usr/) are copied directly into the package root without any integrity verification beyond the archive-level checksum. This is a real supply-chain concern: an executed binary from a non-canonical, unverifiable host. The cheaper model's MEDIUM rating is correct.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Alex S. <shantanna_at_hotmail_dot_com>
pkgname=xod
pkgver=v0.38.0
pkgrel=1
pkgdesc="XOD is a visual programming language for microcontrollers."
arch=('any')
url="https://xod.io/"
license=('AGPL3')
depends=('nodejs' 'yarn')
conflicts=('xod-git')
source=("https://www.googleapis.com/download/storage/v1/b/releases.xod.io/o/v0.38.0%2Fxod-client-electron-0.38.0.x86_64.rpm?generation=1615553616000093&alt=media")
sha256sums=('68e8263c08fe3806fdc7f3a46e45d9e94d2863479433c9e4a4a28dbcae224aed')
options=('!strip')
package() {
cd ${srcdir}
cp -r opt usr ${pkgdir}
install -D -m644 opt/'XOD IDE'/LICENSES.chromium.html ${pkgdir}/usr/share/licenses/$pkgname/license.html
}
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 |