popular-packages
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:7
url="https://pub-dist.s3.us-east-005.dream.io/Software/${pkgname}/${pkgname}.jpg"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 82%): The PKGBUILD downloads a file named 'popular-packages' (no extension) from a personal/commercial S3-compatible object store (DreamObjects) and installs it directly as an executable in /usr/bin. There is no upstream source repository, no version tag, no tarball — just a bare binary/script blob hosted on an unofficial third-party storage host. The sha256sum provides integrity against accidental corruption but not against a deliberate substitution by whoever controls that S3 bucket. Since the installed artifact is executed code (a shell script or binary placed in /usr/bin with mode 755), this is a genuine supply-chain concern: if the bucket is compromised or the maintainer replaces the file, users get arbitrary code execution with no way to audit the change. This matches the medium severity definition exactly: executed code from an unofficial/personal host.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Xavion <Xavion (dot) 0 (at) Gmail (dot) com>
pkgname=popular-packages
pkgver=0.6.3
pkgrel=1
pkgdesc="Lists popular packages not (yet) installed"
url="https://pub-dist.s3.us-east-005.dream.io/Software/${pkgname}/${pkgname}.jpg"
arch=("any")
license=("GPL3")
depends=("wget" "jq" "package-query")
#optdepends=("pacman-cage: Better performance")
options=(!emptydirs)
source=(https://pub-dist.s3.us-east-005.dream.io/Software/${pkgname}/${pkgname})
package() {
cd "${srcdir}"
install -D -m755 ${pkgname} "${pkgdir}"/usr/bin/${pkgname}
}
sha256sums=('4df195ee81471bbe2459b42c12e3a7428772cac71080995b4e4da0817a3c8c94')
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 |