slic3r-dev
The PKGBUILD downloads a prebuilt binary tarball at build time via wget in prepare() from dl.slic3r.org, using a commit SHA derived from the GitHub API response. This binary is not listed in source=() and has no checksum verification (no sha512sum entry for it). The domain dl.slic3r.org is the official Slic3r download server, not a random personal host, which reduces but does not eliminate risk. However, the core concern is real: (1) the binary is a prebuilt executable installed to /opt and run directly, (2) it is fetched outside of makepkg's integrity-checking framework (no checksum, not in source=), and (3) the SHA used to construct the URL comes from a GitHub API JSON response that is itself only SKIP-verified. If dl.slic3r.org were compromised or the domain expired/hijacked, arbitrary code would execute on the user's system. This is a genuine supply-chain concern — an executed binary from a host with no integrity verification — warranting a medium rating.
Triggered rules
external_download_not_in_source
curl/wget fetches a URL on a non-allowlisted host that is not part of source=(), so it is not checksum-verified by makepkg.
-
PKGBUILD:32
wget -q --show-progress -O slic3r.tar.bz2 "https://dl.slic3r.org/dev/linux/slic3r-${_pkgver//_/-}-${sha:0:7}-linux-x64.tar.bz2"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 82%): The PKGBUILD downloads a prebuilt binary tarball at build time via wget in prepare() from dl.slic3r.org, using a commit SHA derived from the GitHub API response. This binary is not listed in source=() and has no checksum verification (no sha512sum entry for it). The domain dl.slic3r.org is the official Slic3r download server, not a random personal host, which reduces but does not eliminate risk. However, the core concern is real: (1) the binary is a prebuilt executable installed to /opt and run directly, (2) it is fetched outside of makepkg's integrity-checking framework (no checksum, not in source=), and (3) the SHA used to construct the URL comes from a GitHub API JSON response that is itself only SKIP-verified. If dl.slic3r.org were compromised or the domain expired/hijacked, arbitrary code would execute on the user's system. This is a genuine supply-chain concern — an executed binary from a host with no integrity verification — warranting a medium rating.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Dominic Meiser git at msrd0 dot de
pkgname=slic3r-dev
_pkgver=1.3.1_dev
pkgver=$_pkgver
pkgrel=4
pkgdesc="Development build of Slic3r, a 3D Printer Toolpath Generator"
arch=('x86_64')
url="https://slic3r.org"
license=('AGPL3')
depends=('freeglut' 'glu' 'gtk2' 'perl')
makedepends=('jq' 'wget')
conflicts=('slic3r' 'slic3r-git' 'slic3r-bin')
provides=('slic3r')
source=("master.json::https://api.github.com/repos/alexrj/slic3r/branches/master"
"slic3r.desktop")
sha512sums=('SKIP'
'0a3c840681077cf052fe7335d7275e2967d3f753082036f8a59bc1ab7b704874e481f33764a39ad4c481adc280ee3b9f594a0f3047659ef2c95aa708ead43593')
pkgver()
{
cd $srcdir
time=$(date --date=$(jq '.commit.commit.committer.date' master.json | tr -d '"') '+%Y%m%dT%H%M%S')
sha=$(jq '.commit.sha' master.json | tr -d '"')
echo "${_pkgver}.${time}.${sha:0:7}"
}
prepare()
{
cd $srcdir
sha=$(jq '.commit.sha' master.json | tr -d '"')
wget -q --show-progress -O slic3r.tar.bz2 "https://dl.slic3r.org/dev/linux/slic3r-${_pkgver//_/-}-${sha:0:7}-linux-x64.tar.bz2"
}
package()
{
cd $srcdir
install -d "$pkgdir/opt"
tar xfj slic3r.tar.bz2 -C "$pkgdir/opt/"
sed -i "$pkgdir/opt/Slic3r/Slic3r" -e 's/DIR=.*$/DIR=\/opt\/Slic3r/'
sed -i "$pkgdir/opt/Slic3r/Slic3r" -e 's/LD_LIBRARY_PATH=.*$/LD_LIBRARY_PATH=\/opt\/Slic3r\/bin/'
install -d "$pkgdir/usr/bin"
ln -s "/opt/Slic3r/Slic3r" "$pkgdir/usr/bin/slic3r"
install -d "$pkgdir/usr/share/applications"
install -m 644 $srcdir/slic3r.desktop "$pkgdir/usr/share/applications/"
}
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 |