botan2
The source is a tarball from the project's official domain (botan.randombit.net), which is not on the whitelist but is plausibly legitimate; the package builds from source and includes PGP verification, reducing risk.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The source is a tarball from the project's official domain (botan.randombit.net), which is not on the whitelist but is plausibly legitimate; the package builds from source and includes PGP verification, reducing risk.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:29
source=(https://botan.randombit.net/releases/Botan-"${pkgver}".tar.xz{,.asc}
PKGBUILD
1 offending line(s) highlighted#!/hint/bash -e
#
# Maintainer: Ľubomír 'the-k' Kučera <lubomir.kucera.jr at gmail.com>
# Contributor: Antonio Rojas <arojas@archlinux.org>
# Contributor: Alexander F. Rødseth <xyproto@archlinux.org>
# Contributor: Angel Velasquez <angvp@archlinux.org>
# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
# Contributor: d'Ronin <daronin@2600.com>
# Contributor: Hexchain Tong <richard0053@gmail.com>
# Contributor: Jack Lloyd <jack@randombit.net>
pkgname=botan2
pkgver=2.19.5
pkgrel=5
pkgdesc='Crypto library written in C++ (legacy version)'
arch=(x86_64)
url='https://botan.randombit.net/'
license=(BSD)
depends=(
glibc
)
makedepends=(
boost
python
python-setuptools
python-sphinx
)
optdepends=('python: for using botan2.py')
source=(https://botan.randombit.net/releases/Botan-"${pkgver}".tar.xz{,.asc}
boost-fixes.patch
fix-oaep-unpad-breaking-change.patch
CVE-2024-50382.patch
CVE-2024-50383.patch
)
sha256sums=('dfeea0e0a6f26d6724c4af01da9a7b88487adb2d81ba7c72fcaf52db522c9ad4'
'SKIP'
'4d6e04836b934671b893b7df207159b7a945191f25c134a8ab95ff43bd6ae536'
'4cdf87b7b8f6a7eda78df335944af806e63ab22cec528914306cf14c35a45d90'
'34a34279260487a5f62859ba5abddb0cdcfdf0b62b1c49acf60117a941df0e07'
'4493316d4d04e152f3dd980b4710741bd620db404af59fba846f269ce2efeaa1')
validpgpkeys=('621DAF6411E1851C4CF9A2E16211EBF1EFBADFBC') # Botan Distribution Key
declare -gA _depends=(
[bzip2]="libbz2.so"
[libgcc]="libgcc_s.so"
[libstdc++]="libstdc++.so"
[sqlite]="libsqlite3.so"
[xz]="liblzma.so"
[zlib]="libz.so"
)
makedepends+=(
"${!_depends[@]}"
)
prepare() {
cd "Botan-${pkgver}"
patch -p0 -i ../boost-fixes.patch
patch -p1 -i ../fix-oaep-unpad-breaking-change.patch
patch -p1 -i ../CVE-2024-50382.patch
patch -p1 -i ../CVE-2024-50383.patch
}
build() {
cd Botan-$pkgver
./configure.py \
--prefix=/usr \
--with-bzip \
--with-lzma \
--with-zlib \
--with-boost \
--with-sqlite3 \
--with-os-feature=getrandom \
--build-targets=shared,tests
make
}
check() {
cd Botan-$pkgver
LD_LIBRARY_PATH="$PWD" ./botan-test
}
package() {
# shellcheck disable=SC2206
depends+=(
${_depends[@]}
)
: "${pkgdir:?}"
DESTDIR="$pkgdir" make -C Botan-$pkgver install
install -Dm644 Botan-$pkgver/license.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
: "${arch[@]}"
: "${depends[@]}"
: "${license[@]}"
: "${makedepends[@]}"
: "${optdepends[@]}"
: "${pkgdesc}"
: "${pkgrel}"
: "${source[@]}"
: "${sha256sums[@]}"
: "${url}"
: "${validpgpkeys[@]}"
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-27 00:23:28 | Low | 2 |
| 2026-10-26 00:12:40 | Low | 2 |
| 2026-10-25 00:20:48 | Low | 2 |
| 2026-10-24 00:14:55 | Low | 2 |
| 2026-10-23 00:02:19 | Low | 2 |
| 2026-10-22 00:13:10 | Low | 2 |
| 2026-10-21 00:12:50 | Low | 2 |
| 2026-10-20 00:10:31 | Low | 2 |
| 2026-10-19 00:03:55 | Low | 2 |
| 2026-10-18 00:06:55 | Low | 2 |
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |
| 2026-10-14 00:06:47 | Low | 2 |
| 2026-10-13 00:23:45 | Low | 2 |
| 2026-10-12 00:18:51 | Low | 2 |
| 2026-10-11 00:26:05 | Low | 2 |
| 2026-10-10 00:11:52 | Low | 2 |
| 2026-10-09 00:05:33 | Low | 2 |
| 2026-10-08 00:28:03 | Low | 2 |