multiposter
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:14
"https://beta.quicklisp.org/quicklisp.lisp")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): Two genuine supply-chain concerns exist here, beyond the cheaper model's observation. (1) quicklisp.lisp is downloaded from beta.quicklisp.org and has a b2sum, so the file itself is pinned — that part is acceptable. However, (2) the prepare() step then runs that Lisp installer and immediately pulls a third-party dist from http://dist.shirakumo.org/shirakumo.txt over plain HTTP with no integrity check. This dist can supply arbitrary Lisp source/compiled code that is executed during the build() step via ql:quickload. The shirakumo.org dist is the maintainer's own personal distribution server, not an official Quicklisp dist, and it is fetched over unencrypted HTTP with no checksum verification whatsoever. Any MITM or compromise of dist.shirakumo.org could inject malicious Lisp code that runs during the build. This is a real, if not clearly malicious, supply-chain risk: executed code from an unofficial personal host fetched without integrity verification. The rating of MEDIUM is correct.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Yukari Hafner <shinmera@tymoon.eu>
pkgname=multiposter
pkgver=2.1.0
pkgrel=1
epoch=0
pkgdesc="An application to post to multiple services at once."
arch=('i686' 'x86_64' 'aarch64')
url="https://github.com/shinmera/multiposter"
license=('zlib' 'BSD')
groups=()
options=("!strip")
makedepends=('sbcl')
source=("https://github.com/shinmera/$pkgname/archive/v$pkgver.tar.gz"
"https://beta.quicklisp.org/quicklisp.lisp")
b2sums=('befda3a0a3881bc1713c8dfb9ec9289dd08bea95cc98192b557b72afeae77a62475dfc83d776d03a80bb735ac8e74d2fd4027ff3c0769774fe3cc3d5ce2a3051'
'57d0d29e08d77176fea4f01e644fc11bdb96e9efbd132cbb9720192d3b47599f5ce3c6e0307b44c33add06bd70c28004b8efb8968f1d9deb881a2db4ac615772')
prepare() {
if [ ! -d "quicklisp" ]; then
sbcl --disable-debugger --no-sysinit --no-userinit \
--load "quicklisp.lisp" \
--eval '(quicklisp-quickstart:install :path "quicklisp/")' \
--eval '(ql-dist:install-dist "http://dist.shirakumo.org/shirakumo.txt" :prompt NIL)' \
--eval '(quit)'
fi
}
build() {
sbcl --disable-debugger --no-sysinit --no-userinit \
--load "quicklisp/setup.lisp" \
--eval "(asdf:load-asd \"$(pwd)/$pkgname-$pkgver/multiposter.asd\")" \
--eval '(ql:quickload :multiposter)' \
--eval '(asdf:make :multiposter)' \
--eval '(quit)'
}
package() {
mkdir -p "$pkgdir/usr/bin/"
cp "$pkgname-$pkgver/multiposter" "$pkgdir/usr/bin/"
}
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 |