kathara
Triggered rules
pip_install_external
`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:25
$srcdir/venv/bin/pip install --upgrade "setuptools<81" -
PKGBUILD:26
$srcdir/venv/bin/pip install -r $srcdir/Kathara-$pkgver/src/requirements.txt -
PKGBUILD:27
$srcdir/venv/bin/pip install -r $srcdir/Kathara-$pkgver/scripts/autocompletion/requirements.txt -
PKGBUILD:28
$srcdir/venv/bin/pip install pyinstaller -
PKGBUILD:29
$srcdir/venv/bin/pip install pytest
privileged_install
The package grants elevated privileges or installs an update path outside pacman: a /etc/sudoers.d rule (often passwordless), a setuid/setgid binary, or a self-update script/service that can fetch and run future code with no checksum verification. The initial install may be verified, but the ongoing privilege + update surface is a real supply-chain / privilege-escalation risk.
-
PKGBUILD:55
install -p -m 2755 -g 962 $srcdir/Kathara-$pkgver/src/kathara.dist/kathara/kathara $pkgdir/usr/lib/$pkgname/
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD sources the main tarball from the official GitHub release tag, which is legitimate. However, the build process installs unversioned/unpinned pip packages (pyinstaller, pytest, setuptools) and installs from requirements.txt files whose contents are not verified by the PKGBUILD itself (no checksums on the requirements files beyond what's in the tarball). The primary concern is that pyinstaller bundles all Python dependencies into a compiled binary that gets installed system-wide — this means whatever pip resolves at build time (including transitive dependencies from PyPI) ends up as executed code in /usr/lib/kathara/_internal. Since the requirements.txt is inside the verified tarball this partially mitigates the risk, but pyinstaller and pytest are pulled from PyPI without version pinning, creating a real (if modest) supply-chain window. The md5sums='SKIP' also means the tarball itself is not integrity-checked. This is a genuine medium-risk pattern: unverified PyPI packages are compiled into and installed as an executed binary bundle, not merely data.
PKGBUILD
6 offending line(s) highlightedpkgname=kathara
pkgver=3.8.3
pkgrel=1
pkgdesc="A lightweight container-based network emulation tool."
arch=('any')
url="https://www.kathara.org/"
license=('GPL3')
install="kathara.install"
changelog="kathara.changelog"
makedepends=(
'python'
'chrpath'
'ruby-ronn-ng'
)
optdepends=(
'docker: for running network scenarios in a local environment'
'xterm: for opening devices terminals'
'tmux: for devices terminals multiplexing'
)
source=("https://github.com/KatharaFramework/Kathara/archive/refs/tags/$pkgver.tar.gz")
md5sums=('SKIP')
prepare() {
python3 -m venv $srcdir/venv
$srcdir/venv/bin/pip install --upgrade "setuptools<81"
$srcdir/venv/bin/pip install -r $srcdir/Kathara-$pkgver/src/requirements.txt
$srcdir/venv/bin/pip install -r $srcdir/Kathara-$pkgver/scripts/autocompletion/requirements.txt
$srcdir/venv/bin/pip install pyinstaller
$srcdir/venv/bin/pip install pytest
}
build() {
cd $srcdir/Kathara-$pkgver/docs && make roff-build
cd $srcdir/Kathara-$pkgver/scripts/autocompletion/ && $srcdir/venv/bin/python generate_autocompletion.py $srcdir/Kathara-$pkgver/scripts/autocompletion/kathara.bash-completion
cd $srcdir/Kathara-$pkgver/ && $srcdir/venv/bin/python -m pytest tests
cp $srcdir/Kathara-$pkgver/scripts/Linux-Pkg/kathara.spec $srcdir/Kathara-$pkgver/src/
cd $srcdir/Kathara-$pkgver/src/ && $srcdir/venv/bin/pyinstaller --distpath=./kathara.dist --workpath=./kathara.build kathara.spec
}
package() {
for man_file in $srcdir/Kathara-$pkgver/docs/Roff/*; do \
man_file_dir="man${man_file: -1}"; \
[[ -d $srcdir/Kathara-$pkgver/docs/Roff/$man_file_dir ]] || mkdir $srcdir/Kathara-$pkgver/docs/Roff/$man_file_dir; \
mv -f $man_file $srcdir/Kathara-$pkgver/docs/Roff/$man_file_dir; \
done;
install -d -m 755 $pkgdir/usr/share/man
cp -r $srcdir/Kathara-$pkgver/docs/Roff/* $pkgdir/usr/share/man/
install -d -m 755 $pkgdir/etc/bash_completion.d/
install -p -m 644 $srcdir/Kathara-$pkgver/scripts/autocompletion/kathara.bash-completion $pkgdir/etc/bash_completion.d/
install -d $pkgdir/usr/lib/$pkgname
cp -r $srcdir/Kathara-$pkgver/src/kathara.dist/kathara/_internal $pkgdir/usr/lib/$pkgname/_internal
find $pkgdir/usr/lib/$pkgname/_internal -type f -exec chmod 644 {} \;
install -p -m 2755 -g 962 $srcdir/Kathara-$pkgver/src/kathara.dist/kathara/kathara $pkgdir/usr/lib/$pkgname/
install -d -m 755 $pkgdir/usr/bin
ln -sf /usr/lib/$pkgname/kathara $pkgdir/usr/bin/$pkgname
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | MEDIUM | 3 |
| 2026-08-02 00:16:08 | MEDIUM | 3 |
| 2026-08-01 00:11:18 | MEDIUM | 3 |
| 2026-07-31 00:14:10 | MEDIUM | 3 |
| 2026-07-30 00:17:23 | MEDIUM | 3 |
| 2026-07-29 00:25:53 | MEDIUM | 3 |
| 2026-07-28 00:07:28 | MEDIUM | 3 |
| 2026-07-27 00:24:32 | MEDIUM | 3 |
| 2026-07-26 00:07:32 | MEDIUM | 3 |
| 2026-07-25 00:13:44 | MEDIUM | 3 |
| 2026-07-24 00:02:28 | MEDIUM | 3 |
| 2026-07-23 00:14:47 | MEDIUM | 3 |
| 2026-07-22 00:29:32 | MEDIUM | 3 |
| 2026-07-21 00:24:15 | MEDIUM | 3 |
| 2026-07-20 00:19:49 | MEDIUM | 3 |
| 2026-07-19 00:17:08 | MEDIUM | 3 |
| 2026-07-18 00:14:48 | MEDIUM | 3 |
| 2026-07-17 00:06:16 | MEDIUM | 3 |
| 2026-07-16 00:05:41 | MEDIUM | 3 |
| 2026-07-15 00:09:25 | MEDIUM | 3 |