nordpy
The package downloads configuration files and certificates from NordVPN's official domains, which are used as static data and not executed; the source is legitimate and the worst case of a swapped host would be limited to invalid configurations or trust issues, not arbitrary code execution.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads configuration files and certificates from NordVPN's official domains, which are used as static data and not executed; the source is legitimate and the worst case of a swapped host would be limited to invalid configurations or trust issues, not arbitrary code execution.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:20
"https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip" -
PKGBUILD:21
"https://downloads.nordvpn.com/certificates/root.der"
PKGBUILD
2 offending line(s) highlighted# Maintainer : Totchi Lagawi <chatnoir420 at gmx dot com>
# Former maintainer: morpheusthewhite <zffromGerace at hotmail dot it>
# Todo if it gets on the AUR : optional support for XOR OpenVPN
pkgname=nordpy
pkgver=1.3.5
pkgrel=2
pkgdesc="An application with gui to connect automatically to the recommended NordVPN server"
arch=('any')
url="https://github.com/morpheusthewhite/NordPy"
license=('GPL3')
groups=()
depends=('python3' 'openvpn' 'tk' 'python-requests' 'wget' 'unzip' 'net-tools' 'iproute2' 'strongswan')
optdepends=('networkmanager-openvpn')
makedepends=('wget')
options=("!strip")
source=(
"${pkgname}-${pkgver}.tar.gz::https://github.com/morpheusthewhite/NordPy/archive/${pkgver}.tar.gz"
"https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip"
"https://downloads.nordvpn.com/certificates/root.der"
"nordpy.desktop"
)
# TODO: Should I really skip the last two?
sha512sums=(
'47d67c363b1d927d63e67311469359d011f9e9f4a9156006676997ed31f147dc31da950f911622f86d5fe7b1f2099c0e31e8fd6d2644c1a53ddb184b02bb8086'
'SKIP'
'SKIP'
'610d22b14c4931a7aeae255ea03780ba98991a4f5640ec0cc00ff519225493ddb75d02a2d9d1fd7b5053d31de1f77b71fe858d6d31d5997477799a9253cca8da'
)
prepare() {
openssl x509 -inform der -in root.der -out root.pem
}
package() {
install -Dm644 nordpy.desktop $pkgdir/usr/share/applications/nordpy.desktop
install -Dm644 root.der $pkgdir/usr/share/nordpy/NordVPN.der
install -Dm644 root.pem $pkgdir/usr/share/nordpy/NordVPN.pem
install -Dm644 -t $pkgdir/usr/share/nordpy/ovpn_tcp/ ovpn_tcp/*
install -Dm644 -t $pkgdir/usr/share/nordpy/ovpn_udp/ ovpn_udp/*
cd $pkgname-$pkgver
install -Dm755 nordpy.py $pkgdir/usr/share/nordpy/
install -Dm644 __init__.py $pkgdir/usr/share/nordpy/
find bin/ -type f -exec install -Dm644 "{}" "$pkgdir/usr/share/nordpy/{}" \;
find media/ -type f -exec install -Dm644 "{}" "$pkgdir/usr/share/nordpy/{}" \;
mkdir -p $pkgdir/usr/bin
ln -sf $pkgdir/usr/share/nordpy/nordpy.py $pkgdir/usr/bin/nordpy
chmod 755 $pkgdir/usr/bin/nordpy
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Low | 2 |
| 2026-10-31 00:07:41 | Low | 2 |
| 2026-10-30 00:29:30 | Low | 2 |
| 2026-10-29 00:13:55 | Low | 2 |
| 2026-10-28 00:06:54 | Low | 2 |
| 2026-10-27 00:23:28 | Low | 2 |
| 2026-10-26 00:12:40 | Low | 2 |
| 2026-10-25 00:20:48 | Low | 2 |
| 2026-10-24 00:14:55 | Low | 2 |
| 2026-10-23 00:02:19 | Low | 2 |
| 2026-10-22 00:13:10 | Low | 2 |
| 2026-10-21 00:12:50 | Low | 2 |
| 2026-10-20 00:10:31 | Low | 2 |
| 2026-10-19 00:03:55 | Low | 2 |
| 2026-10-18 00:06:55 | Low | 2 |
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |
| 2026-10-14 00:06:47 | Low | 2 |
| 2026-10-13 00:23:45 | Low | 2 |