mtpdk

maintainer sekret · 0 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The source URL is constructed at PKGBUILD parse time by executing a live curl call to powerdrumkit.com's API, which returns a URL that is then used as the actual download source. While the sha256sum provides integrity verification of the final downloaded binary (a VST3 .so shared library that will be installed as executable code), there are two real concerns: (1) the actual download URL is opaque and determined at runtime by a third-party API response, meaning the source array in the PKGBUILD does not statically declare where the binary comes from — this makes reproducibility and auditing difficult; (2) the downloaded artifact is a pre-compiled binary (.so) from the vendor's own infrastructure, not built from source. However, mitigating factors are significant: the vendor is the official upstream (powerdrumkit.com), the sha256sum is hardcoded and will catch any tampering of the binary content, and this pattern (vendor API redirect to CDN) is used by legitimate commercial freeware distributors. The risk is real but not clearly malicious — it's a supply-chain concern because the binary's origin URL is dynamic and the API could theoretically redirect to a different host, but the checksum anchors the content. This fits the medium category: an executed binary from a non-fully-transparent source chain.

Triggered rules

MEDIUM source=() URL on a non-standard host 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:14 source=("$(curl -s 'https://www.powerdrumkit.com/API_linux_AUR.php?product=mtpdk2_free&format_and_os=VST3-64bit-Linux' | sed -n 's/.*"source_url":"\([^"]*\)".*/\1/p' | sed 's#\\/#/#g')"
MEDIUM AI review llm_review

An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The source URL is constructed at PKGBUILD parse time by executing a live curl call to powerdrumkit.com's API, which returns a URL that is then used as the actual download source. While the sha256sum provides integrity verification of the final downloaded binary (a VST3 .so shared library that will be installed as executable code), there are two real concerns: (1) the actual download URL is opaque and determined at runtime by a third-party API response, meaning the source array in the PKGBUILD does not statically declare where the binary comes from — this makes reproducibility and auditing difficult; (2) the downloaded artifact is a pre-compiled binary (.so) from the vendor's own infrastructure, not built from source. However, mitigating factors are significant: the vendor is the official upstream (powerdrumkit.com), the sha256sum is hardcoded and will catch any tampering of the binary content, and this pattern (vendor API redirect to CDN) is used by legitimate commercial freeware distributors. The risk is real but not clearly malicious — it's a supply-chain concern because the binary's origin URL is dynamic and the API could theoretically redirect to a different host, but the checksum anchors the content. This fits the medium category: an executed binary from a non-fully-transparent source chain.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: sekret
2_name="MT-PowerDrumKit"
3pkgname=mtpdk
4pkgver=2.1.4.0
5pkgrel=1
6pkgdesc="The MT Power Drum Kit is a free drum sampler offering the powerful, high-quality sounds of an acoustic, realistic drum kit"
7arch=(x86_64)
8url="https://www.powerdrumkit.com"
9license=('custom')
10groups=('pro-audio' 'vst3-plugins')
11depends=('libxkbcommon' 'xcb-util-cursor' 'glib2' 'xcb-util' 'gcc-libs' 'fontconfig' 'libx11' 'libxkbcommon-x11' 'libxcb' 'cairo' 'glibc' 'pango')
12makedepends=('curl')
13options=(!debug)
14source=("$(curl -s 'https://www.powerdrumkit.com/API_linux_AUR.php?product=mtpdk2_free&format_and_os=VST3-64bit-Linux' | sed -n 's/.*"source_url":"\([^"]*\)".*/\1/p' | sed 's#\\/#/#g')"
15 "https://www.powerdrumkit.com/API_EULA.php")
16sha256sums=('9a1c43237b9373192cee38cb3ed4d2582d6fdb7074709b4efbddf8b31bb6708a'
17 'dbdc4c2b5ac1b956481a514001013cc8ea8c38fabe73742c6881f3752f5b3660')
18
19package() {
20 install -Dm755 "$_name.vst3/Contents/$CARCH-linux/$_name.so" "$pkgdir/usr/lib/vst3/$_name.vst3/Contents/$CARCH-linux/$_name.so"
21 install -Dm644 "API_EULA.php" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
22 cd "$_name.vst3/Contents/Resources/"
23 for i in *
24 do
25 install -Dm644 "$i" "$pkgdir/usr/lib/vst3/$_name.vst3/Contents/Resources/$i"
26 done
27 rm "$pkgdir/usr/lib/vst3/$_name.vst3/Contents/Resources/Thumbs.db"
28}
29

Scan history

Scanned at (UTC)SeverityRules
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

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion