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-09-17 00:27:14 | Medium | 2 |
| 2026-09-16 00:03:17 | Medium | 2 |
| 2026-09-15 00:25:31 | Medium | 2 |
| 2026-09-14 00:27:57 | Medium | 2 |
| 2026-09-13 00:19:54 | Medium | 2 |
| 2026-09-12 00:25:17 | Medium | 2 |
| 2026-09-11 00:19:22 | Medium | 2 |
| 2026-09-10 00:22:44 | Medium | 2 |
| 2026-09-09 00:04:09 | Medium | 2 |
| 2026-09-08 00:18:08 | Medium | 2 |
| 2026-09-07 00:30:15 | Medium | 2 |
| 2026-09-06 00:17:06 | Medium | 2 |
| 2026-09-05 00:16:27 | Medium | 2 |
| 2026-09-04 00:03:13 | Medium | 2 |
| 2026-09-03 00:15:47 | Medium | 2 |
| 2026-09-02 00:02:31 | Medium | 2 |
| 2026-09-01 00:11:19 | Medium | 2 |
| 2026-08-31 00:19:57 | Medium | 2 |
| 2026-08-30 00:04:14 | Medium | 2 |
| 2026-08-29 00:29:17 | Medium | 2 |