nordpy

LOW
maintainer totchi 6 votes scanned 2026-11-01 00:21:48.120785
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-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

Report a package

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

0 / 4000
Your suggestion