cajviewer-bin

maintainer orphaned · 1 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged 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

MEDIUM source=() URL on a non-standard host 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")
MEDIUM AI review 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
1# Maintainer: niyanhhhhh <2093615664@qq.com>
2
3pkgname=cajviewer-bin
4pkgver=1.0.3.0
5pkgrel=1
6pkgdesc="Document Viewer for CAJ, KDH, NH, TEB and PDF format"
7arch=("x86_64")
8url="http://cajviewer.cnki.net"
9license=(custom)
10depends=('avahi'
11 'shared-mime-info'
12 'libcups'
13 'libgcrypt'
14 'gmp'
15 'gnutls'
16 'krb5'
17 'libidn11'
18 'xz'
19 'libpng12'
20 'qt5-base'
21 'qt5-declarative'
22 'qt5-virtualkeyboard'
23 'libselinux'
24 'systemd-libs'
25 'libtasn1'
26 'libx11'
27 'libxau'
28 'libxcb'
29 'libxdmcp'
30 'libxkbcommon'
31 'libxrender')
32provides=('cajviewer')
33conflicts=('cajviewer' 'cajviewer-appimage' 'cajviewer-app-image')
34install=${pkgname}.install
35source=("https://download.cnki.net/net.cnki.cajviewer_${pkgver}_amd64.deb")
36sha256sums=('7f23605532a6e0efbe48eb98c05a76e1f768f871a5af34b7d1fe9e6b2ad7aa5b')
37
38package() {
39 cd ${srcdir}
40 tar -xJf data.tar.xz
41 cd ${srcdir}/opt/apps/net.cnki.cajviewer/files
42
43 install -d ${pkgdir}/opt/${pkgname}/lib/
44 mv lib/libdouble-conversion.so* ${pkgdir}/opt/${pkgname}/lib/
45 mv lib/libffi.so* ${pkgdir}/opt/${pkgname}/lib/
46 mv lib/libhogweed.so* ${pkgdir}/opt/${pkgname}/lib/
47 mv lib/libnettle.so* ${pkgdir}/opt/${pkgname}/lib/
48 mv lib/libpcre.so* ${pkgdir}/opt/${pkgname}/lib/
49 mv lib/libreaderex_x64.so* ${pkgdir}/opt/${pkgname}/lib/
50
51 mv bin ${pkgdir}/opt/${pkgname}/bin/
52 mv {plugins,translations} ${pkgdir}/opt/${pkgname}/
53
54 sed -i "2c export LD_LIBRARY_PATH=/usr/local/lib:/opt/${pkgname}/lib:\$LD_LIBRARY_PATH" ${pkgdir}/opt/${pkgname}/bin/start.sh
55 sed -i "4c\ \t/opt/${pkgname}/bin/cajviewer" ${pkgdir}/opt/${pkgname}/bin/start.sh
56 sed -i "6c\ \t/opt/${pkgname}/bin/cajviewer \"\$1\"" ${pkgdir}/opt/${pkgname}/bin/start.sh
57
58 install -d ${pkgdir}/usr/bin/
59 ln -s /opt/${pkgname}/bin/start.sh ${pkgdir}/usr/bin/cajviewer
60
61 install -d ${pkgdir}/usr/share/mime/packages/
62 mv share/{applications,icons} ${pkgdir}/usr/share/
63 install -Dm644 cnki-caj.xml ${pkgdir}/usr/share/mime/packages/cnki-caj.xml
64}
65

Scan history

Scanned at (UTC)SeverityRules
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

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion