ndi-sdk-embedded
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:17
source=("$_srcfile"::"http://514f211588de67e4fdcf-437b8dd50f60b69cf0974b538e50585b.r63.cf1.rackcdn.com/Utilities/SDK/Embedded_SDK/InstallNDISDK_v${_majver}_Linux_Embedded.tar.gz")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The source is a prebuilt binary SDK (shared library libndi.so + executables) downloaded from a Rackspace CDN URL that is not the canonical NewTek/NDI download page. The URL pattern (a long hex-prefixed CDN bucket) is consistent with NewTek's historical distribution method for their NDI SDK — the companion AUR package 'ndi-sdk' by Daniel Bermond uses the same CDN pattern — so this is not obviously a personal/rogue host. However, it is still an unofficial CDN endpoint rather than a verifiable vendor domain, and the package installs executed binaries and a shared library without source. The sha256sum provides integrity checking against tampering in transit, but does not protect against the CDN host itself serving a malicious payload. The overall pattern (prebuilt closed-source binary SDK from a CDN with a hash) is a genuine medium supply-chain concern: if the CDN bucket were compromised or the URL silently redirected, arbitrary code would be installed system-wide. This is not clearly malicious, but the risk is real and non-trivial.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Carl Kittelberger <icedream@icedream.pw>
# Based on the PKGBUILD for AUR package `ndi-sdk` by Daniel Bermond <dbermond@archlinux.org>
pkgname=ndi-sdk-embedded
pkgver=4.5.3.20200630.r116025
pkgrel=1
_majver="${pkgver%%.*}"
pkgdesc='NewTek NDI Embedded SDK'
arch=('aarch64' 'armv6h' 'armv7h' 'x86_64' 'i686')
url='https://www.newtek.com/ndi/sdk/'
license=('custom')
depends=('avahi')
provides=('libndi' 'libndi-bin' 'ndi-sdk')
conflicts=('libndi' 'libndi-bin' 'libndi-git' 'ndi-sdk')
options=('!strip')
_srcfile="InstallNDISDK_v${pkgver}_Linux_Embedded.tar.gz"
source=("$_srcfile"::"http://514f211588de67e4fdcf-437b8dd50f60b69cf0974b538e50585b.r63.cf1.rackcdn.com/Utilities/SDK/Embedded_SDK/InstallNDISDK_v${_majver}_Linux_Embedded.tar.gz")
noextract=("$_srcfile")
sha256sums=('e930cf814e536b927e3e44dd1288a9963fc65aa332c51f13ef8e2f8d829f1abf')
case "${CARCH}" in
armv6*)
newtek_triplet="arm-rpi1-linux-gnueabihf"
;;
armv7*)
newtek_triplet="arm-rpi2-linux-gnueabihf"
;;
arm*)
newtek_triplet="arm-newtek-linux-gnueabihf"
;;
aarch*)
newtek_triplet="aarch64-rpi4-linux-gnueabi"
;;
*)
newtek_triplet="${CARCH}-linux-gnu"
;;
esac
prepare() {
mkdir -p "${pkgname}-${pkgver}"
bsdtar -x -f "$_srcfile" -C "${pkgname}-${pkgver}"
local _target_line
cd "${pkgname}-${pkgver}"
_target_line="$(sed -n '/^__NDI_ARCHIVE_BEGIN__$/=' "InstallNDISDK_v${_majver}_Linux_Embedded.sh")"
_target_line="$((_target_line + 1))"
tail -n +"$_target_line" "InstallNDISDK_v${_majver}_Linux_Embedded.sh" |
tar -zxv \
"NDI SDK for Linux/bin/${newtek_triplet}/" \
"NDI SDK for Linux/lib/${newtek_triplet}/" \
"NDI SDK for Linux/documentation" \
"NDI SDK for Linux/include" \
"NDI SDK for Linux/licenses/libndi_licenses.txt" \
"NDI SDK for Linux/NDI Embedded License Agreement.txt" \
"NDI SDK for Linux/Version.txt"
}
pkgver() {
local _sdkdir="${srcdir}/${pkgname}-${pkgver}/NDI SDK for Linux"
read _ date rel ver < "${_sdkdir}/Version.txt"
date="${date//-/}"
ver="${ver#v}"
printf '%s.%s.%s' "$ver" "$date" "$rel"
}
package() {
local _sdkdir="${srcdir}/${pkgname}-${pkgver}/NDI SDK for Linux"
# binary executables
install -D -m755 "${_sdkdir}/bin/${newtek_triplet}/"* -t "${pkgdir}/usr/bin"
# headers
install -D -m644 "${_sdkdir}/include/"* -t "${pkgdir}/usr/include"
# library
install -D -m755 "${_sdkdir}/lib/${newtek_triplet}/libndi.so.${_majver}".*.* -t "${pkgdir}/usr/lib"
cd "${pkgdir}/usr/lib"
ln -s "libndi.so.${_majver}".*.* "libndi.so.${_majver}"
ln -s "libndi.so.${_majver}".*.* libndi.so
# docs
install -D -m644 "${_sdkdir}/documentation/"* -t "${pkgdir}/usr/share/doc/${pkgname}"
# license
install -D -m644 "${_sdkdir}/NDI Embedded License Agreement.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -D -m644 "${_sdkdir}/licenses/libndi_licenses.txt" -t "${pkgdir}/usr/share/licenses/${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 |