terraspace-bin
The PKGBUILD downloads a prebuilt .deb from apt.boltops.com, which is the official BoltOps package repository (the vendor behind Terraspace). This is not a random personal host — it is the project's own distribution channel, analogous to how other vendors host their own apt/yum repos. However, the source URL uses a 'latest' alias (terraspace-latest.deb) rather than a versioned filename, meaning the downloaded artifact can change over time independently of the pkgver field. The sha256sum provides a point-in-time integrity check, but if the maintainer updates the checksum to track 'latest', the version pinning is effectively broken. The package installs a prebuilt binary bundle (Ruby embedded runtime + application code) from a non-GitHub, vendor-controlled host into /opt/terraspace. This is a real supply-chain concern: if apt.boltops.com is compromised or the 'latest' deb is silently replaced, users get arbitrary code execution. The risk is not theoretical malice but the structural weakness of a mutable 'latest' URL with a fixed checksum that will eventually drift. This warrants a medium rating — it is a legitimate vendor host but the mutable URL pattern and binary installation from a non-standard host constitute a genuine supply-chain concern.
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:11
source=("https://apt.boltops.com/packages/terraspace/terraspace-latest.deb" "terraspace.install")
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 .deb from apt.boltops.com, which is the official BoltOps package repository (the vendor behind Terraspace). This is not a random personal host — it is the project's own distribution channel, analogous to how other vendors host their own apt/yum repos. However, the source URL uses a 'latest' alias (terraspace-latest.deb) rather than a versioned filename, meaning the downloaded artifact can change over time independently of the pkgver field. The sha256sum provides a point-in-time integrity check, but if the maintainer updates the checksum to track 'latest', the version pinning is effectively broken. The package installs a prebuilt binary bundle (Ruby embedded runtime + application code) from a non-GitHub, vendor-controlled host into /opt/terraspace. This is a real supply-chain concern: if apt.boltops.com is compromised or the 'latest' deb is silently replaced, users get arbitrary code execution. The risk is not theoretical malice but the structural weakness of a mutable 'latest' URL with a fixed checksum that will eventually drift. This warrants a medium rating — it is a legitimate vendor host but the mutable URL pattern and binary installation from a non-standard host constitute a genuine supply-chain concern.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Debendra Oli <debendraoli [at] pm [dot] me>
pkgname=terraspace-bin
pkgver=1.1.7
pkgrel=1
pkgdesc="Terraspace: The Terraform Framework"
arch=('x86_64')
makedepends=('tar' 'binutils')
url="https://github.com/boltops-tools/terraspace"
license=('Apache-2.0 License')
source=("https://apt.boltops.com/packages/terraspace/terraspace-latest.deb" "terraspace.install")
sha256sums=('25d3e8184aee913a57e1b40e6f3f08dc7b53051f565e75f47383d84e9c6493b1' '7c44dda7bd327a3f94d42272e76006fb4dd69c573d6bcfb6072ff134fd5bbbb4')
install=terraspace.install
prepare() {
cd "$srcdir/"
tar -xf data.tar.xz
}
package() {
cd "$srcdir/"
install -d "$pkgdir/opt/terraspace"
cp -r "$srcdir/opt/terraspace/embedded" "$pkgdir/opt/terraspace"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Medium | 2 |
| 2026-09-16 00:03:17 | Medium | 2 |
| 2026-09-15 00:25:31 | Medium | 2 |
| 2026-09-14 00:27:57 | Medium | 2 |
| 2026-09-13 00:19:54 | Medium | 2 |
| 2026-09-12 00:25:17 | Medium | 2 |
| 2026-09-11 00:19:22 | Medium | 2 |
| 2026-09-10 00:22:44 | Medium | 2 |
| 2026-09-09 00:04:09 | Medium | 2 |
| 2026-09-08 00:18:08 | Medium | 2 |
| 2026-09-07 00:30:15 | Medium | 2 |
| 2026-09-06 00:17:06 | Medium | 2 |
| 2026-09-05 00:16:27 | Medium | 2 |
| 2026-09-04 00:03:13 | Medium | 2 |
| 2026-09-03 00:15:47 | Medium | 2 |
| 2026-09-02 00:02:31 | Medium | 2 |
| 2026-09-01 00:11:19 | Medium | 2 |
| 2026-08-31 00:19:57 | Medium | 2 |
| 2026-08-30 00:04:14 | Medium | 2 |
| 2026-08-29 00:29:17 | Medium | 2 |