wikijs-rs
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.
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-11-01 00:21:48 | Medium | 2 |
| 2026-10-31 00:07:41 | Medium | 2 |
| 2026-10-30 00:29:30 | Medium | 2 |
| 2026-10-29 00:13:55 | Medium | 2 |
| 2026-10-28 00:06:54 | Medium | 2 |
| 2026-10-27 00:23:28 | Medium | 2 |
| 2026-10-26 00:12:40 | Medium | 2 |
| 2026-10-25 00:20:48 | Medium | 2 |
| 2026-10-24 00:14:55 | Medium | 2 |
| 2026-10-23 00:02:19 | Medium | 2 |
| 2026-10-22 00:13:10 | Medium | 2 |
| 2026-10-21 00:12:50 | Medium | 2 |
| 2026-10-20 00:10:31 | Medium | 2 |
| 2026-10-19 00:03:55 | Medium | 2 |
| 2026-10-18 00:06:55 | Medium | 2 |
| 2026-10-17 00:21:55 | Medium | 2 |
| 2026-10-16 00:12:47 | Medium | 2 |
| 2026-10-15 00:28:05 | Medium | 2 |
| 2026-10-14 00:06:47 | Medium | 2 |
| 2026-10-13 00:23:45 | Medium | 2 |