paper-desktop-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:11
source=("${pkgname%-bin}.deb::https://download.paper.design/linux/deb")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 82%): This PKGBUILD downloads a prebuilt binary .deb from download.paper.design (the vendor's own download server, not a personal/unofficial host) and installs it directly. The main concerns are: (1) sha256sums=('SKIP') means no integrity verification — if the host is compromised or the URL is hijacked, a malicious binary would be installed silently; (2) the URL 'https://download.paper.design/linux/deb' appears to serve a rolling/latest release rather than a pinned version, so the downloaded binary can change at any time without the PKGBUILD reflecting it; (3) a prebuilt closed-source binary is being executed on the user's system. The host itself (download.paper.design) is the official vendor domain matching the project URL (paper.design), which reduces but does not eliminate supply-chain risk. The combination of an executed binary with no checksum verification is a genuine medium-severity supply-chain concern — not clearly malicious, but a real risk if the CDN or DNS is compromised.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Wei Zhu <yesmeck@gmail.com>
pkgname=paper-desktop-bin
pkgver=0.1.10
pkgrel=1
pkgdesc="Paper is a modern and powerful design tool that helps you create, share, and ship your best work."
arch=('x86_64')
url="https://paper.design"
license=('custom')
options=('!debug' '!strip')
depends=('gtk3' 'webkit2gtk' 'libappindicator-gtk3')
source=("${pkgname%-bin}.deb::https://download.paper.design/linux/deb")
sha256sums=('SKIP')
pkgver() {
cd "$srcdir"
# Extract control info from deb to get version
bsdtar -xf "${pkgname%-bin}.deb" control.tar.xz
bsdtar -xf control.tar.xz ./control
grep -E '^Version:' control | sed 's/Version: //' | cut -d'-' -f1
}
package() {
# Extract the deb package
bsdtar -xf "$srcdir/${pkgname%-bin}.deb" -C "$srcdir"
bsdtar -xf "$srcdir/data.tar.xz" -C "$pkgdir"
# Fix permissions
find "$pkgdir" -type d -exec chmod 755 {} \;
find "$pkgdir" -type f -exec chmod 644 {} \;
# Make binaries executable
find "$pkgdir/usr/bin" -type f -exec chmod 755 {} \; 2>/dev/null || true
# Make the main binary in /opt executable
chmod 755 "$pkgdir/opt/Paper/paper-desktop"
# Create symlink to /usr/bin if it doesn't exist
install -d "$pkgdir/usr/bin"
ln -sf "/opt/Paper/paper-desktop" "$pkgdir/usr/bin/paper-desktop"
}
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 |