wizdom.ai
Triggered rules
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:13
source=("$pkgname-$pkgver.tar::https://app.wizdom.ai/wizdomUpdate?app=wizdom.ai.installer.v3.nix.64")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): This PKGBUILD downloads a prebuilt binary application (NW.js app tarball) from app.wizdom.ai via a dynamic/versioned endpoint with SKIP'd checksum verification, then installs it to /opt for execution. The concerns are real but not clearly malicious: (1) sha256sums=SKIP means no integrity check — the server can silently serve different content at any time; (2) the source URL is a dynamic endpoint (wizdomUpdate?app=...) rather than a static versioned release artifact, making reproducibility impossible; (3) the downloaded content is an executed binary application installed to /opt, not mere data. However, app.wizdom.ai is the official vendor's own domain (matching the package's stated url of wizdom.ai), so this is the vendor's own distribution channel rather than a third-party or personal host. The pattern is sloppy and risky (no checksum, dynamic URL) but consistent with a proprietary vendor distributing their own app through AUR — similar to how some other proprietary desktop apps are packaged. The medium rating is appropriate: it's a real supply-chain concern (no integrity verification of an executed binary) but not evidence of active malice.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Yifei Wu <kqwyfg@gmail.com>
pkgname=wizdom.ai
pkgver=3.20.0907
pkgrel=1
pkgdesc="The desktop application for wizdom.ai Library."
arch=('x86_64')
url="https://www.wizdom.ai"
license=('unknown')
depends=()
provides=('wizdom.ai')
options=()
source=("$pkgname-$pkgver.tar::https://app.wizdom.ai/wizdomUpdate?app=wizdom.ai.installer.v3.nix.64")
sha256sums=("SKIP")
pkgver() {
cd "$srcdir/$pkgname"
echo $(sed "s/,/\n/g" package.nw/package.json | grep "\"version\"" | cut -d ":" -f 2 | cut -d "\"" -f 2)
}
package() {
# install icons
install -dm755 "$pkgdir/usr/share/icons"
cp -dpr --no-preserve=ownership "wizdom.ai/package.nw/icon_app_win.png" "$pkgdir/usr/share/icons/wizdom.ai.png"
# add icon to the .desktop file
cp "wizdom.ai/wizdom.ai.desktop" "wizdom.ai/wizdom.ai.desktop.new.1"
echo "Icon=wizdom.ai" >> "wizdom.ai/wizdom.ai.desktop.new.1"
# fix "Exec=" in the .desktop file
sed "s/Exec=.*/Exec=bash -c '\/opt\/wizdom.ai\/wizdom.ai' dummy %k/g" "wizdom.ai/wizdom.ai.desktop.new.1" > "wizdom.ai/wizdom.ai.desktop.new.2"
# fix "NoDisplay" in the .desktop file
grep -v "NoDisplay" "wizdom.ai/wizdom.ai.desktop.new.2" > "wizdom.ai/wizdom.ai.desktop.new.3"
# install .desktop file and remove the temporary .desktop files
install -Dm644 "wizdom.ai/wizdom.ai.desktop.new.3" "$pkgdir/usr/share/applications/wizdom.ai.desktop"
rm "wizdom.ai/wizdom.ai.desktop.new.1" "wizdom.ai/wizdom.ai.desktop.new.2" "wizdom.ai/wizdom.ai.desktop.new.3"
# install all the files to /opt
install -dm755 "$pkgdir/opt"
cp -dpr --no-preserve=ownership "wizdom.ai" "$pkgdir/opt"
}
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 |