wikijs-rs
Triggered rules
alt_pkg_manager_install
A non-pip/npm package manager (pipx, uv, poetry, cargo install, go install, gem, conda…) fetches and builds an external package at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:21
cargo install --root="$pkgdir" wikijs --features=cli
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 80%): The PKGBUILD uses 'cargo install' to fetch and compile the 'wikijs' crate directly from crates.io at build/install time, without pinning a specific version hash or using a local source. The pkgver() function dynamically queries crates.io via 'cargo search' to determine the version, meaning the installed version is not reproducibly locked. While crates.io is a legitimate ecosystem registry, this pattern bypasses Arch's normal source integrity checks (no source array, no checksums, no sha256sums), meaning any update to the crate on crates.io — including a compromised one — would be silently installed. This is a genuine supply-chain concern: executed compiled code from an external source with no integrity verification at packaging time. It is not clearly malicious, but it is a real medium-severity supply-chain risk.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Sandro-Alessio Gierens <sandro@gierens.de>
pkgname=wikijs-rs
pkgver=0.2.1
pkgrel=1
makedepends=('rust' 'cargo')
arch=('i686' 'x86_64' 'armv6h' 'armv7h')
pkgdesc="CLI client for Wiki.js written in Rust."
url="https://github.com/gierens/wikijs-rs"
license=('AGPL-3.0')
build() {
return 0
}
pkgver() {
cargo search wikijs | grep "^wikijs " | awk '{print $3}' | tr -d '"'
}
package() {
cd $srcdir
cargo install --root="$pkgdir" wikijs --features=cli
rm -f "$pkgdir"/.crates.toml
rm -f "$pkgdir"/.crates2.json
mkdir -p "$pkgdir"/usr
mv "$pkgdir"/bin "$pkgdir"/usr/
}
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 |