snapmakerjs
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:13
"https://s3-us-west-2.amazonaws.com/snapmaker.com/download/snapmakerjs/snapmakerjs-${pkgver}-linux-amd64.deb"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD downloads a prebuilt binary .deb from an AWS S3 bucket (snapmaker.com/download/...) and installs its contents directly. While the S3 bucket appears to be the official Snapmaker distribution channel (the URL path includes the vendor domain 'snapmaker.com'), S3 buckets are not the same as a vendor's own infrastructure — bucket names can be squatted or misconfigured, and there is no cryptographic verification beyond a weak MD5 checksum. The package extracts and installs a prebuilt binary (an Electron app) directly into /opt and /usr without any build step, meaning whatever is in the .deb is executed on the user's system. The MD5 hash provides minimal integrity assurance (MD5 is broken for collision resistance). This is a real supply-chain concern: a compromised or hijacked S3 bucket would deliver a malicious executable with no strong verification. However, this pattern (vendor distributing via S3 with an MD5 checksum) is common in AUR packages for proprietary software, and there is no evidence of active malice. The medium rating is appropriate.
PKGBUILD
1 offending line(s) highlighted# Maintainer: José San Juan <josesj@gmail.com>
pkgname=snapmakerjs
pkgver=2.7.1
pkgrel=2
pkgdesc="Snapmaker 3-in-1 Software"
url="http://www.snapmaker.com"
license=('custom')
depends=('gconf')
arch=('x86_64')
md5sums=('b6f700e09157553f161b21d12cd748fb')
source=(
"https://s3-us-west-2.amazonaws.com/snapmaker.com/download/snapmakerjs/snapmakerjs-${pkgver}-linux-amd64.deb"
)
package() {
cd "${srcdir}"
tar -xf data.tar.xz -C "${srcdir}"
mv "$srcdir/opt" "$pkgdir/"
mv "$srcdir/usr" "$pkgdir/"
}
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 |