scholaread-bin
This PKGBUILD downloads a prebuilt binary .deb from cdn.scholaread.com (the vendor's own CDN, not a personal/unofficial host) and installs it directly. The main concerns are: (1) sha256sums=('SKIP') means no integrity verification — any compromise of the CDN or a MITM attack would silently deliver malicious binaries; (2) the package installs a setuid-root binary (chrome-sandbox with chmod 4755), which is a high-privilege operation; (3) it's a closed-source Electron app binary with no source verification. However, cdn.scholaread.com appears to be the official vendor CDN for the scholaread.com product, making this more of a standard 'binary from vendor' AUR pattern rather than a clearly unofficial/personal host. The SKIP checksum is the real concern — it means every install fetches whatever is currently at that URL with no pinning. This is a genuine supply-chain risk (medium) but not evidence of active malice.
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:16
source=("${pkgname}-${pkgver}.deb::https://cdn.scholaread.com/assets/pc-releases/${pkgver}/com/Scholaread-linux-amd64-${pkgver}.deb")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 80%): This PKGBUILD downloads a prebuilt binary .deb from cdn.scholaread.com (the vendor's own CDN, not a personal/unofficial host) and installs it directly. The main concerns are: (1) sha256sums=('SKIP') means no integrity verification — any compromise of the CDN or a MITM attack would silently deliver malicious binaries; (2) the package installs a setuid-root binary (chrome-sandbox with chmod 4755), which is a high-privilege operation; (3) it's a closed-source Electron app binary with no source verification. However, cdn.scholaread.com appears to be the official vendor CDN for the scholaread.com product, making this more of a standard 'binary from vendor' AUR pattern rather than a clearly unofficial/personal host. The SKIP checksum is the real concern — it means every install fetches whatever is currently at that URL with no pinning. This is a genuine supply-chain risk (medium) but not evidence of active malice.
PKGBUILD
1 offending line(s) highlighted# Maintainer: SummerElement <Dapugongying@foxmail.com>
pkgname=scholaread-bin
pkgver=1.1.66
pkgrel=3
pkgdesc="A helpful AI driven software that helps you do research."
arch=('x86_64')
url="https://scholaread.com"
license=('custom')
depends=('gtk3' 'nss' 'libxss' 'libxtst')
optdepends=('libnotify: desktop notifications support'
'xdg-utils: open URLs in browser'
'libsecret: password storage support'
'at-spi2-core: accessibility support'
'util-linux-libs: UUID generation support'
'libappindicator: system tray icon support')
source=("${pkgname}-${pkgver}.deb::https://cdn.scholaread.com/assets/pc-releases/${pkgver}/com/Scholaread-linux-amd64-${pkgver}.deb")
sha256sums=('SKIP')
package() {
# unzip DEB
ar x "${srcdir}/${pkgname}-${pkgver}.deb"
tar -xf data.tar.xz -C "${pkgdir}"
# fix file permission
chmod +x "${pkgdir}/opt/Scholaread/scholaread"
chmod 4755 "${pkgdir}/opt/Scholaread/chrome-sandbox"
# setup license
install -Dm644 "${pkgdir}/opt/Scholaread/LICENSE.electron.txt" \
"${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
post_install() {
# update icon cache
update-desktop-database
gtk-update-icon-cache -qt /usr/share/icons/hicolor
}
post_upgrade() {
post_install
}
post_remove() {
post_install
}
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 |