udrawgraph
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://www.informatik.uni-bremen.de/uDrawGraph/download/uDrawGraph-$pkgver-0-linux-i386.tar.gz")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): This PKGBUILD downloads a prebuilt i386 binary tarball from the University of Bremen's informatik department server over plain HTTP (no TLS), with only an MD5 checksum for integrity verification. The binary is then installed directly to /opt and executed. The concerns are: (1) HTTP-only download means no transport security — the tarball could be silently swapped by a MITM; (2) MD5 is cryptographically broken and provides weak integrity guarantees; (3) no PGP signature verification. The host (informatik.uni-bremen.de) is a legitimate German university CS department and uDrawGraph is a real, well-known academic graph visualization tool, so this is not a malicious package. However, the combination of a prebuilt binary + HTTP + MD5-only verification is a genuine supply-chain risk pattern that warrants medium severity. The cheaper model's assessment is correct here, though the host is not truly 'non-standard' — it is the official upstream vendor host for this software.
PKGBUILD
1 offending line(s) highlighted# Contributor: Markus Gross (xsdnyd [at] gmail.com)
# Maintainer: Baptiste Jonglez <baptiste--aur at jonglez dot org>
pkgname=udrawgraph
pkgver=3.1.1
pkgrel=5
pkgdesc="The powerful solution for graph visualization"
url="http://www.informatik.uni-bremen.de/uDrawGraph/"
arch=('i686' 'x86_64')
license=('custom')
depends_i686=('libx11')
depends_x86_64=('lib32-libx11')
source=("http://www.informatik.uni-bremen.de/uDrawGraph/download/uDrawGraph-$pkgver-0-linux-i386.tar.gz")
md5sums=("7594da0391d2e5a2aa4b073b10938e9a")
package() {
cd "$srcdir/uDrawGraph-3.1"
# just copy all files, it is already binary
mkdir -p "$pkgdir/opt/$pkgname/"
mkdir -p "$pkgdir/usr/bin"
cp -r * "$pkgdir/opt/$pkgname/"
# put fake binaries in /usr/bin
echo "#!/bin/bash" > "$pkgdir/usr/bin/udrawgraph"
echo "UDG_HOME=/opt/udrawgraph /opt/$pkgname/bin/uDrawGraph" '"$@"' >> "$pkgdir/usr/bin/udrawgraph"
chmod +x "$pkgdir/usr/bin/udrawgraph"
for i in grapheditor gml2udg formatterm flattenterm checkterm
do
echo "#!/bin/bash" > "$pkgdir/usr/bin/$i"
echo "UDG_HOME=/opt/udrawgraph /opt/$pkgname/bin/$i" '"$@"' >> "$pkgdir/usr/bin/$i"
chmod +x "$pkgdir/usr/bin/$i"
done
# install license
mkdir -p "$pkgdir/usr/share/licenses/$pkgname"
cp LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
# vim:syntax=sh
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 |