cajviewer-bin
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:35
source=("https://download.cnki.net/net.cnki.cajviewer_${pkgver}_amd64.deb")
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 Debian binary package (.deb) from download.cnki.net, which is the official download server for CNKI (China National Knowledge Infrastructure), the vendor of CAJViewer. The host is not a random personal server — it is the legitimate vendor's distribution infrastructure. A sha256sum is provided, which pins the specific binary. However, the package installs a closed-source, prebuilt binary executable (cajviewer) and several bundled shared libraries (including libreaderex_x64.so, a proprietary reader library) that cannot be audited. The binary originates from a Chinese state-affiliated academic publisher, and there is no GPG signature verification beyond the sha256 checksum. The risk is a standard 'binary blob from a closed-source vendor' scenario: if the upstream host is compromised or the vendor ships malicious code, it executes on the user's system. This is a genuine medium-severity supply-chain concern (unauditable prebuilt binary from a non-Western vendor with no cryptographic signing beyond a hash), but there is no evidence of active malice, obfuscation, or payload injection. The cheaper model's rating of MEDIUM is appropriate.
PKGBUILD
1 offending line(s) highlighted# Maintainer: niyanhhhhh <2093615664@qq.com>
pkgname=cajviewer-bin
pkgver=1.0.3.0
pkgrel=1
pkgdesc="Document Viewer for CAJ, KDH, NH, TEB and PDF format"
arch=("x86_64")
url="http://cajviewer.cnki.net"
license=(custom)
depends=('avahi'
'shared-mime-info'
'libcups'
'libgcrypt'
'gmp'
'gnutls'
'krb5'
'libidn11'
'xz'
'libpng12'
'qt5-base'
'qt5-declarative'
'qt5-virtualkeyboard'
'libselinux'
'systemd-libs'
'libtasn1'
'libx11'
'libxau'
'libxcb'
'libxdmcp'
'libxkbcommon'
'libxrender')
provides=('cajviewer')
conflicts=('cajviewer' 'cajviewer-appimage' 'cajviewer-app-image')
install=${pkgname}.install
source=("https://download.cnki.net/net.cnki.cajviewer_${pkgver}_amd64.deb")
sha256sums=('7f23605532a6e0efbe48eb98c05a76e1f768f871a5af34b7d1fe9e6b2ad7aa5b')
package() {
cd ${srcdir}
tar -xJf data.tar.xz
cd ${srcdir}/opt/apps/net.cnki.cajviewer/files
install -d ${pkgdir}/opt/${pkgname}/lib/
mv lib/libdouble-conversion.so* ${pkgdir}/opt/${pkgname}/lib/
mv lib/libffi.so* ${pkgdir}/opt/${pkgname}/lib/
mv lib/libhogweed.so* ${pkgdir}/opt/${pkgname}/lib/
mv lib/libnettle.so* ${pkgdir}/opt/${pkgname}/lib/
mv lib/libpcre.so* ${pkgdir}/opt/${pkgname}/lib/
mv lib/libreaderex_x64.so* ${pkgdir}/opt/${pkgname}/lib/
mv bin ${pkgdir}/opt/${pkgname}/bin/
mv {plugins,translations} ${pkgdir}/opt/${pkgname}/
sed -i "2c export LD_LIBRARY_PATH=/usr/local/lib:/opt/${pkgname}/lib:\$LD_LIBRARY_PATH" ${pkgdir}/opt/${pkgname}/bin/start.sh
sed -i "4c\ \t/opt/${pkgname}/bin/cajviewer" ${pkgdir}/opt/${pkgname}/bin/start.sh
sed -i "6c\ \t/opt/${pkgname}/bin/cajviewer \"\$1\"" ${pkgdir}/opt/${pkgname}/bin/start.sh
install -d ${pkgdir}/usr/bin/
ln -s /opt/${pkgname}/bin/start.sh ${pkgdir}/usr/bin/cajviewer
install -d ${pkgdir}/usr/share/mime/packages/
mv share/{applications,icons} ${pkgdir}/usr/share/
install -Dm644 cnki-caj.xml ${pkgdir}/usr/share/mime/packages/cnki-caj.xml
}
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 |