cajviewer-bin
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.
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-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 |