python-mkl-fft-bin
This PKGBUILD downloads a prebuilt binary package (a compiled Python extension using Intel MKL) from repo.anaconda.com, which is Anaconda's official package repository. While Anaconda is a legitimate and well-known distribution channel, the package installs a prebuilt binary (not source-compiled) from a non-Arch host. The sha256sum is pinned, which mitigates tampering risk at the transport level, but the binary's provenance and build reproducibility cannot be independently verified. The prefix-replacement sed operation on the installed binary is a standard Anaconda relocation technique, not malicious. The overall pattern — pinned hash, official Anaconda repo, known upstream (IntelPython/mkl_fft on GitHub) — makes this a legitimate but non-standard packaging approach. The medium rating is appropriate: it's not an attack, but installing prebuilt binaries from a non-Arch source into the Python path is a genuine supply-chain concern if Anaconda's infrastructure were compromised or the package were silently updated.
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=("https://repo.anaconda.com/pkgs/main/linux-64/${_pkgname}-${_pkgver}-${_build}.tar.bz2")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): This PKGBUILD downloads a prebuilt binary package (a compiled Python extension using Intel MKL) from repo.anaconda.com, which is Anaconda's official package repository. While Anaconda is a legitimate and well-known distribution channel, the package installs a prebuilt binary (not source-compiled) from a non-Arch host. The sha256sum is pinned, which mitigates tampering risk at the transport level, but the binary's provenance and build reproducibility cannot be independently verified. The prefix-replacement sed operation on the installed binary is a standard Anaconda relocation technique, not malicious. The overall pattern — pinned hash, official Anaconda repo, known upstream (IntelPython/mkl_fft on GitHub) — makes this a legitimate but non-standard packaging approach. The medium rating is appropriate: it's not an attack, but installing prebuilt binaries from a non-Arch source into the Python path is a genuine supply-chain concern if Anaconda's infrastructure were compromised or the package were silently updated.
PKGBUILD
1 offending line(s) highlighted# Maintainer : Chris Billington <chrisjbillington@gmail.com>
pkgname=python-mkl-fft-bin
_pkgname=mkl_fft
_pkgver=1.3.6
_build=py311ha02d727_1
pkgver="${_pkgver}.anaconda${_build##*_}"
pkgrel=3
epoch=1
pkgdesc="Fast Fourier Transform using Intel MKL - prebuilt binaries from Anaconda"
arch=('x86_64')
url="https://github.com/IntelPython/mkl_fft"
license=('custom')
provides=('python-mkl-fft')
conflicts=('python-mkl-fft')
depends=('python-mkl-service' 'python-numpy')
makedepends=('jq')
source=("https://repo.anaconda.com/pkgs/main/linux-64/${_pkgname}-${_pkgver}-${_build}.tar.bz2")
sha256sums=('ca708f0195f2e0320f7bc11e3a7adea84a61fc7419bd7c563fcac77cf2a9ea2a')
prepare() {
# Prefix replacement
for row in $(jq -c '.paths[] | select(has("prefix_placeholder"))' "info/paths.json"); do
path=$(echo $row | jq -r '._path')
prefix=$(echo $row | jq -r '.prefix_placeholder')
sed -i "s:${prefix}:/usr:g" "${path}"
done
}
package() {
mkdir "${pkgdir}/usr"
cp -drp --no-preserve=ownership "${srcdir}/lib" "${pkgdir}/usr/lib"
install -D -m 644 "${srcdir}/info/licenses/LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Medium | 2 |
| 2026-10-31 00:07:41 | Medium | 2 |
| 2026-10-30 00:29:30 | Medium | 2 |
| 2026-10-29 00:13:55 | Medium | 2 |
| 2026-10-28 00:06:54 | Medium | 2 |
| 2026-10-27 00:23:28 | Medium | 2 |
| 2026-10-26 00:12:40 | Medium | 2 |
| 2026-10-25 00:20:48 | Medium | 2 |
| 2026-10-24 00:14:55 | Medium | 2 |
| 2026-10-23 00:02:19 | Medium | 2 |
| 2026-10-22 00:13:10 | Medium | 2 |
| 2026-10-21 00:12:50 | Medium | 2 |
| 2026-10-20 00:10:31 | Medium | 2 |
| 2026-10-19 00:03:55 | Medium | 2 |
| 2026-10-18 00:06:55 | Medium | 2 |
| 2026-10-17 00:21:55 | Medium | 2 |
| 2026-10-16 00:12:47 | Medium | 2 |
| 2026-10-15 00:28:05 | Medium | 2 |
| 2026-10-14 00:06:47 | Medium | 2 |
| 2026-10-13 00:23:45 | Medium | 2 |