thesage
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:20
"${pkgname}-${pkgver}.zip::https://www.sequencepublishing.com/cgi-bin/download.cgi?burbridgelinux"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The package downloads a prebuilt binary (Burbridge.exe, a Linux ELF despite the .exe extension — common for Wine-free cross-platform apps) from sequencepublishing.com via a CGI download script. This is the official vendor site matching the package URL, so it is not a random personal host. However, the download mechanism (a CGI script rather than a direct versioned URL) means the file could theoretically be silently replaced without a URL change. The critical mitigating factor is that a sha256sum is pinned ('a9948c03e3c6600a1522f8b899fd97cdb56d9927bf8f8cc25b55605fcb3294dd'), which provides integrity verification regardless of the delivery mechanism — makepkg will reject any substituted binary that doesn't match. The binary is installed with 755 permissions and symlinked into /usr/bin, so it is executed directly. The opt directory is world-writable (dm777), which is a local privilege concern but not a supply-chain issue. Overall: the sha256sum pin substantially reduces the CGI-script supply-chain risk, and the host is the official vendor site. This is borderline medium/clean; the non-versioned CGI URL with a pinned hash is unusual but not clearly dangerous.
PKGBUILD
1 offending line(s) highlighted# Maintainer: txtsd <aur.archlinux@ihavea.quest>
pkgname=thesage
pkgver=0.40.3028
pkgrel=1
pkgdesc='English Dictionary and Thesaurus. A twenty-first century lexical reference system.'
arch=(x86_64)
url='https://www.sequencepublishing.com/1/burbridgebeta_linux.html'
license=('LicenseRef-thesage')
depends=(
bash
gcc-libs
glibc
zlib
)
makedepends=(unzip)
options=(!strip !debug)
noextract=("${pkgname}-${pkgver}.zip")
source=(
"${pkgname}-${pkgver}.zip::https://www.sequencepublishing.com/cgi-bin/download.cgi?burbridgelinux"
"${pkgname}.desktop"
"${pkgname}.png"
)
sha256sums=('a9948c03e3c6600a1522f8b899fd97cdb56d9927bf8f8cc25b55605fcb3294dd'
'f8a25d201a455c45455a3f9b8eeae5c00198752fa7dbbf247d9c17f0ea816925'
'00d663f565810bee13d7bda68db577389e215c2424a59a828625eb05a4ecd099')
prepare() {
# Extract
unzip -q "${pkgname}-${pkgver}.zip" -d "${pkgname}"
}
package() {
cd "${pkgname}"
# World writeable directory needed to write config file
install -dm777 "${pkgdir}/opt/${pkgname}"
# Data and executable
for i in $(seq -f "%04g" 0 11); do
install -Dm644 "${i}.dat" -t "${pkgdir}/opt/${pkgname}"
done
install -Dm755 Burbridge.exe "${pkgdir}/opt/${pkgname}/Burbridge.exe"
# Images
install -Dm644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
install -Dm644 "${srcdir}/${pkgname}.png" "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
# Symlink to binary
install -dm755 "${pkgdir}/usr/bin"
ln -s "/opt/${pkgname}/Burbridge.exe" "${pkgdir}/usr/bin/thesage"
}
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 |