plantuml-pdf
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=("http://beta.plantuml.net/batikAndFop.zip")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The source is a prebuilt JAR bundle (batikAndFop.zip containing Apache Batik and FOP JARs) pulled from beta.plantuml.net, which is a subdomain of the official plantuml.com domain but is a 'beta' endpoint rather than the canonical release infrastructure (GitHub releases or plantuml.com/download). These JARs are installed into /usr/share/java/plantuml/ and will be executed by the JVM when plantuml generates PDFs. While beta.plantuml.net is operated by the PlantUML project itself (not a random third party), it is an unofficial/unstable endpoint with no versioned path — the same URL could silently serve different content over time, and there is no upstream integrity guarantee beyond the single sha256sum pinned here. The combination of executed JVM bytecode from a non-versioned, non-canonical host constitutes a real (if low-probability) supply-chain risk, justifying MEDIUM rather than clean/low.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Linus Dierheimer <Linus@Dierheimer.de>
# Contributor: Mikołaj Chwalisz <m.chwalisz@gmail.com>
pkgname=plantuml-pdf
pkgver=1.9999.0 # Keep compatible with previous package versioning
pkgrel=1
pkgdesc="Extends plantuml package to enable PDF support"
arch=(any)
url="http://plantuml.com/"
license=('GPL')
depends=("plantuml")
source=("http://beta.plantuml.net/batikAndFop.zip")
sha256sums=("c1f328a9aacfd954c6cd90650cefd924baea358d6e27520de7ccf9b30a681877")
package() {
mkdir -p "$pkgdir/usr/share/java/plantuml/"
cp -r "$srcdir"/*.jar "$pkgdir/usr/share/java/plantuml/"
}
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 |