pingo
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=("pingo-win64-${pkgver}.zip"::'https://css-ig.net/bin/pingo-win64.zip'
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 Windows PE binary (pingo.exe) from css-ig.net, which is the official upstream vendor site for the pingo image optimizer. The URL matches the official project URL listed in the 'url' field, so this is not an unofficial or personal host — it is the canonical distribution point. However, the binary is downloaded without a versioned/stable URL (pingo-win64.zip is a floating/latest URL, not pinned to a specific release), meaning the sha256sum provides integrity only at packaging time and could drift if the upstream file is silently replaced. The sha256sum is present and non-SKIP, which mitigates but does not eliminate the risk. The binary is executed via Wine at runtime. The DLAGENTS override with a custom User-Agent and Referer is unusual but functionally just works around hotlink protection on the vendor's server. The shellutils wrapper script comes from a personal GitHub repo (dbermond/shellutils) with SKIP checksum, which is a minor additional concern. Overall this is a legitimate but slightly risky pattern: a floating binary URL from the official vendor with a pinned hash, plus a SKIP-checksummed helper script from a personal repo. This warrants medium rather than clean due to the floating URL and the SKIP on the shell script.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Daniel Bermond <dbermond@archlinux.org>
pkgname=pingo
pkgver=1.25.41
pkgrel=1
pkgdesc='Lossless and lossy image optimizer for PNG/JPEG/WebP/APNG (uses wine)'
arch=('any')
url='https://css-ig.net/pingo'
license=('LicenseRef-Unknown')
depends=(
'sh'
'wine')
makedepends=(
'git')
options=('!debug' '!strip')
source=("pingo-win64-${pkgver}.zip"::'https://css-ig.net/bin/pingo-win64.zip'
'git+https://github.com/dbermond/shellutils.git')
noextract=("pingo-win64-${pkgver}.zip")
sha256sums=('5122b4e80fac86f9057695eb544d293993f222ff14aa4f7c8653e84a4b8339a8'
'SKIP')
_useragent="User-Agent: Mozilla/5.0 (X11; Linux ${CARCH}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.7680.153 Safari/537.36"
DLAGENTS=("https::/usr/bin/curl \
-gqb '' -LC - --retry 3 --retry-delay 3 \
-H Upgrade-Insecure-Requests:\ 1 \
-H ${_useragent// /\\ } \
-H Referer:\ https://www.css-ig.net/pingo \
--compressed \
--output %o \
%u")
prepare() {
mkdir -p "${pkgname}-${pkgver}"
bsdtar -xf "pingo-win64-${pkgver}.zip" -C "${pkgname}-${pkgver}"
}
package() {
install -D -m755 shellutils/image/pingo -t "${pkgdir}/usr/bin"
install -D -m644 "${pkgname}-${pkgver}/pingo.exe" -t "${pkgdir}/usr/share/${pkgname}"
}
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 |