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-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 |