navio
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
"${pkgname}-${pkgver}.zip::https://lms-api-prod-${pkgname}.macmillan.education/ACEApi/PdfExport/downloadapp?environmentId=Linux64Bit_1404"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The package downloads a prebuilt binary application (a .run installer containing a tar archive with executables) from a Macmillan Education production API endpoint (lms-api-prod-navio.macmillan.education). While this is the official vendor's own infrastructure (Macmillan Education is a major publisher), it is not a standard software distribution channel (no GitHub releases, no official Linux package repo). The PKGBUILD extracts a binary payload by stripping the installer header and unpacking nested tarballs, then installs a Mono-based application directly to /opt. The sha256sums are pinned, which mitigates interception risk. The custom DLAGENT with a referer header is unusual but functional. The main concern is that this is a closed-source binary from a CDN/API endpoint rather than a versioned release artifact, meaning the vendor could silently replace the binary at the same URL (though the checksum would catch that). This is a genuine medium-risk supply-chain pattern: executed proprietary binary from a non-standard vendor API host, not a clearly malicious or piracy scenario.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Fredy García <frealgagu at gmail dot com>
pkgname=navio
pkgver=2.13.5492
pkgrel=1
pkgdesc="A digital platform that accompanies Macmillan Education’s English language courses for young learners"
arch=("x86_64")
url="https://lms-api-prod-navio.macmillan.education/PBF/apps"
license=("custom")
depends=("alsa-lib" "cairo" "gcc-libs" "gdk-pixbuf2" "glib2" "glibc" "gtk2" "libcups" "libgdiplus" "librsvg" "libx11" "libxinerama" "libxslt" "libxss" "mono" "nspr" "nss" "sqlite" "unixodbc")
DLAGENTS=("https::/usr/bin/curl --referer https://lms-api-prod-${navio}.macmillan.education/PBF/apps --output %o %u")
source=(
"${pkgname}-${pkgver}.zip::https://lms-api-prod-${pkgname}.macmillan.education/ACEApi/PdfExport/downloadapp?environmentId=Linux64Bit_1404"
"${pkgname}.desktop"
"LICENSE"
)
sha256sums=(
"2663b282fdda27a775eea1f2a7d3abfdebddffa047916caa7b8573755dff2440"
"701446fe566d31ca485fbc4e2c6a9b9063ab8ae4b3d832f85009077661b52856"
"df577fcc17403eb242e5e180488cfdb19226df44582ce86729e42f75586049b8"
)
prepare() {
cd "${srcdir}"
sed -n '/\x1F/,$p' "${srcdir}/install_${pkgname}64.run" > "${srcdir}/${pkgname}.tar.gz"
tar -xf "${srcdir}/${pkgname}.tar.gz" -C . ./data.tar
tar -xf "data.tar" -C .
}
package() {
cd "${srcdir}"
rm -rf "${srcdir}/Navio/gconf2-common_3.2.6-7_all.deb"
rm -rf "${srcdir}/Navio/libgconf-2-4_3.2.6-7_amd64.deb"
install -d "${pkgdir}/opt"
cp -r "${srcdir}/Navio" "${pkgdir}/opt/"
install -Dm644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -Dm644 "${srcdir}/Navio/Navio_Data/Plugins/ThirdPartyNotices.txt" "${pkgdir}/usr/share/licenses/${pkgname}/ThirdPartyNotices.txt"
install -Dm755 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.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 |