cryptoplugin
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:41
"https://biprocessing.org.ua/IdentDigitalSignature/resources/plugin/${_pkgsrc}.run"
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 .run binary from biprocessing.org.ua, which is not PrivatBank's official domain (privatbank.ua). The binary contains a compiled native messaging host executable (nmcryptoplugin) and a shared library (libnpcryptoplugin.so) that are extracted and installed to /usr/bin and /usr/lib respectively — these are executed/loaded code paths. The b2sum checksum provides integrity verification against tampering in transit, but does not address the trust question of whether biprocessing.org.ua is an authorised distribution mirror for PrivatBank's software. The PKGBUILD itself is well-structured: it does NOT execute the .run installer directly (the chmod+x and execution lines are commented out), instead using sed+bsdtar to extract the payload, which is a safer approach. However, the core concern remains: a prebuilt binary and shared library from a third-party host that is not the software vendor's official domain constitutes a genuine supply-chain risk. If biprocessing.org.ua is a legitimate Ukrainian payment processing partner of PrivatBank this may be intentional, but it cannot be verified from the PKGBUILD alone. The medium rating is appropriate.
PKGBUILD
1 offending line(s) highlighted# Contributor: Vitalii Kuzhdin <vitaliikuzhdin@gmail.com>
# Contributor: Carey Minaieva <jedi2light@jedi2light.moe>
declare -Ag _arch=(
['i686']='linux_32'
['x86_64']='linux_64'
)
pkgname="cryptoplugin"
pkgver=1.2.3
pkgrel=3
pkgdesc="PrivatBank Crypto Plugin"
arch=(
"${!_arch[@]}"
)
url="https://privatbank.ua"
license=(
'custom:Limited Use Software License Agreement'
)
depends=(
'at-spi2-core'
'cairo'
'fontconfig'
'freetype2'
'gdk-pixbuf2'
'glib2'
'glibc'
'gtk2'
'libgcc'
'libstdc++'
'pango'
'pcsclite'
)
# provides=(
# "libnp${pkgname}.so"
# )
_pkgsrc="${pkgname}-${pkgver}"
source=(
# https://biprocessing.org.ua/IdentDigitalSignature/resources/plugin/${_pkgsrc}.deb
# https://biprocessing.org.ua/IdentDigitalSignature/resources/plugin/${_pkgsrc}.rpm
"https://biprocessing.org.ua/IdentDigitalSignature/resources/plugin/${_pkgsrc}.run"
)
b2sums=('cbb4a6582c0d0e8a659b27983d5b96be5540e752bcb4e4d8b8e5257fec36f3348516f20810f07a05270daff95d78a3dd4bec07f904ff887732cf6ac5cf0fcaed')
prepare() {
cd "${srcdir}"
# chmod +x ./"${_pkgsrc}.run"
# ./"${_pkgsrc}.run"
mkdir -p "${_pkgsrc}"
sed '1,/EOFEOFEOFEOFEOFEOF/d' "${_pkgsrc}.run" | bsdtar xvzf - -C "${_pkgsrc}"
cd "${_pkgsrc}"
sed -i 's|PLUGIN_PATH|/usr/bin/nmcryptoplugin|' 'com.privatbank.cryptoplugin.json'
cd "mozilla"
sed -i 's|PLUGIN_PATH|/usr/bin/nmcryptoplugin|' 'com.privatbank.cryptoplugin.json'
}
package() {
cd "${srcdir}/${_pkgsrc}"
# https://chromium.googlesource.com/chromium/src.git/+/62.0.3178.1/chrome/common/extensions/docs/examples/api/nativeMessaging/host/install_host.sh
install -vDm644 "com.privatbank.cryptoplugin.json" -t "${pkgdir}/etc/chromium/native-messaging-hosts"
install -vDm644 "com.privatbank.cryptoplugin.json" -t "${pkgdir}/etc/opt/chrome/native-messaging-hosts"
install -vDm644 "com.privatbank.cryptoplugin.json" -t "${pkgdir}/etc/opt/edge/native-messaging-hosts"
cd "${srcdir}/${_pkgsrc}/mozilla"
# https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_manifests#linux
install -vDm644 "com.privatbank.cryptoplugin.json" -t "${pkgdir}/usr/lib/mozilla/native-messaging-hosts"
# ?
install -vDm644 "com.privatbank.cryptoplugin.json" -t "${pkgdir}/usr/lib/librewolf/native-messaging-hosts"
install -vDm644 "cryptoplugin_ext_id@privatbank.ua.xpi" -t "${pkgdir}/usr/lib/firefox/browser/extensions"
install -vDm644 "cryptoplugin_ext_id@privatbank.ua.xpi" -t "${pkgdir}/usr/lib/librewolf/browser/extensions"
cd "${srcdir}/${_pkgsrc}/${_arch[$CARCH]}"
install -vDm755 "nm${pkgname}" "${pkgdir}/usr/bin/nm${pkgname}"
install -vDm644 "libnp${pkgname}.so" "${pkgdir}/usr/lib/libnp${pkgname}.so.${pkgver}"
cd "${pkgdir}/usr/lib"
for lib in *.so.*; do
ln -vsf "${lib}" "${lib%.[0-9]*.[0-9]*.[0-9]*}"
ln -vsf "${lib}" "${lib%.[0-9]*.[0-9]*}"
done
}
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 |