nordpy

maintainer totchi · 6 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged 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

LOW AI review downgraded a static finding 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)
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: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
1# Maintainer : Totchi Lagawi <chatnoir420 at gmx dot com>
2# Former maintainer: morpheusthewhite <zffromGerace at hotmail dot it>
3
4# Todo if it gets on the AUR : optional support for XOR OpenVPN
5
6pkgname=nordpy
7pkgver=1.3.5
8pkgrel=2
9pkgdesc="An application with gui to connect automatically to the recommended NordVPN server"
10arch=('any')
11url="https://github.com/morpheusthewhite/NordPy"
12license=('GPL3')
13groups=()
14depends=('python3' 'openvpn' 'tk' 'python-requests' 'wget' 'unzip' 'net-tools' 'iproute2' 'strongswan')
15optdepends=('networkmanager-openvpn')
16makedepends=('wget')
17options=("!strip")
18source=(
19 "${pkgname}-${pkgver}.tar.gz::https://github.com/morpheusthewhite/NordPy/archive/${pkgver}.tar.gz"
20 "https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip"
21 "https://downloads.nordvpn.com/certificates/root.der"
22 "nordpy.desktop"
23)
24# TODO: Should I really skip the last two?
25sha512sums=(
26 '47d67c363b1d927d63e67311469359d011f9e9f4a9156006676997ed31f147dc31da950f911622f86d5fe7b1f2099c0e31e8fd6d2644c1a53ddb184b02bb8086'
27 'SKIP'
28 'SKIP'
29 '610d22b14c4931a7aeae255ea03780ba98991a4f5640ec0cc00ff519225493ddb75d02a2d9d1fd7b5053d31de1f77b71fe858d6d31d5997477799a9253cca8da'
30)
31
32prepare() {
33 openssl x509 -inform der -in root.der -out root.pem
34}
35
36package() {
37 install -Dm644 nordpy.desktop $pkgdir/usr/share/applications/nordpy.desktop
38 install -Dm644 root.der $pkgdir/usr/share/nordpy/NordVPN.der
39 install -Dm644 root.pem $pkgdir/usr/share/nordpy/NordVPN.pem
40 install -Dm644 -t $pkgdir/usr/share/nordpy/ovpn_tcp/ ovpn_tcp/*
41 install -Dm644 -t $pkgdir/usr/share/nordpy/ovpn_udp/ ovpn_udp/*
42 cd $pkgname-$pkgver
43 install -Dm755 nordpy.py $pkgdir/usr/share/nordpy/
44 install -Dm644 __init__.py $pkgdir/usr/share/nordpy/
45 find bin/ -type f -exec install -Dm644 "{}" "$pkgdir/usr/share/nordpy/{}" \;
46 find media/ -type f -exec install -Dm644 "{}" "$pkgdir/usr/share/nordpy/{}" \;
47 mkdir -p $pkgdir/usr/bin
48 ln -sf $pkgdir/usr/share/nordpy/nordpy.py $pkgdir/usr/bin/nordpy
49 chmod 755 $pkgdir/usr/bin/nordpy
50}
51

Scan history

Scanned at (UTC)SeverityRules
2026-08-03 00:08:14 LOW 2
2026-08-02 00:16:08 LOW 2
2026-08-01 00:11:18 LOW 2
2026-07-31 00:14:10 LOW 2
2026-07-30 00:17:23 LOW 2
2026-07-29 00:25:53 LOW 2
2026-07-28 00:07:28 LOW 2
2026-07-27 00:24:32 LOW 2
2026-07-26 00:07:32 LOW 2
2026-07-25 00:13:44 LOW 2
2026-07-24 00:02:28 LOW 2
2026-07-23 00:14:47 LOW 2
2026-07-22 00:29:32 LOW 2
2026-07-21 00:24:15 LOW 2
2026-07-20 00:19:49 LOW 2
2026-07-19 00:17:08 LOW 2
2026-07-18 00:14:48 LOW 2
2026-07-17 00:06:16 LOW 2
2026-07-16 00:05:41 LOW 2
2026-07-15 00:09:25 LOW 2

Report a package

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

0 / 4000
Your suggestion