pulse-secure

maintainer akosmolnar · 41 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The PKGBUILD downloads a prebuilt RPM binary installer from dl.vpn.ucsb.edu (University of California Santa Barbara's VPN distribution server), which is an institutional mirror rather than the official Ivanti/Pulse Secure vendor domain (pulsesecure.net or ivanti.com). While this is a plausible legitimate university VPN deployment scenario (universities commonly host their own VPN client builds, sometimes customized), it still represents a real supply-chain concern: the binary is executed/installed directly, the host is not the upstream vendor, and if the university server were compromised the md5sum (already a weak hash) would be the only protection. Additionally, DLAGENTS uses curl with -k (disabling TLS certificate verification), which removes transport-layer protection entirely and means a MITM could substitute the binary. The combination of: non-vendor binary host + TLS verification disabled + weak MD5 integrity check + directly installed native binaries constitutes a genuine medium-severity supply-chain risk, not a false positive.

Triggered rules

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:14 source_x86_64=("https://dl.vpn.ucsb.edu/clients/Linux%20VPN%20Client/ps-pulse-linux-22.8r5-b41063-installer.rpm")
MEDIUM AI review llm_review

An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The PKGBUILD downloads a prebuilt RPM binary installer from dl.vpn.ucsb.edu (University of California Santa Barbara's VPN distribution server), which is an institutional mirror rather than the official Ivanti/Pulse Secure vendor domain (pulsesecure.net or ivanti.com). While this is a plausible legitimate university VPN deployment scenario (universities commonly host their own VPN client builds, sometimes customized), it still represents a real supply-chain concern: the binary is executed/installed directly, the host is not the upstream vendor, and if the university server were compromised the md5sum (already a weak hash) would be the only protection. Additionally, DLAGENTS uses curl with -k (disabling TLS certificate verification), which removes transport-layer protection entirely and means a MITM could substitute the binary. The combination of: non-vendor binary host + TLS verification disabled + weak MD5 integrity check + directly installed native binaries constitutes a genuine medium-severity supply-chain risk, not a false positive.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Chiwan Park <chiwanpark@hotmail.com>
2DLAGENTS=("https::/usr/bin/curl -k -o %o %u")
3
4pkgname=pulse-secure
5pkgver=22.8r5_b41063
6pkgrel=2
7pkgdesc='Ivanti Secure Access Client'
8arch=(x86_64)
9license=(custom)
10url='https://www.pulsesecure.net/'
11depends=(gcc-libs libsecret openssl curl dbus libbsd dmidecode patch)
12install=${pkgname}.install
13source=("EULA.txt")
14source_x86_64=("https://dl.vpn.ucsb.edu/clients/Linux%20VPN%20Client/ps-pulse-linux-22.8r5-b41063-installer.rpm")
15md5sums=('261848a28201e5386ec4bf587473a48b')
16md5sums_x86_64=('93a073f8ff0f30d71bb603388dadb417')
17optdepends=('psmisc: for pulsesvc -K', 'gtkmm3: for pulseUi', 'webkit2gtk: for pulseUi')
18conflicts=(pulse-connect-secure)
19options=(!strip)
20
21package() {
22 install -Dm644 EULA.txt "$pkgdir"/usr/share/licenses/$pkgname/EULA.txt
23
24 for d in $(find opt/pulsesecure -type d); do
25 install -dm755 "$d" "$pkgdir"/"$d";
26 done
27 for f in $(find opt/pulsesecure/bin -type f); do
28 install -Dm755 "$f" "$pkgdir"/"$f";
29 done
30 for f in $(find opt/pulsesecure/lib -type f); do
31 install -Dm755 "$f" "$pkgdir"/"$f";
32 done
33 for f in $(find opt/pulsesecure/resource -type f); do
34 install -Dm644 "$f" "$pkgdir"/"$f";
35 done
36 install -Dm644 usr/share/man/man1/pulse.1.gz "$pkgdir"/usr/share/man/man1/pulse.1.gz
37
38 # we move service unit file to /usr/lib/systemd/system due to pacman limitation
39 install -Dm644 lib/systemd/system/pulsesecure.service "$pkgdir"/usr/lib/systemd/system/pulsesecure.service
40
41 mkdir -p "$pkgdir"/usr/share/applications/ "$pkgdir"/usr/share/dbus-1/system.d/ "$pkgdir"/opt/pulsesecure/lib/JUNS/interfaces
42 mkdir -p "$pkgdir"/var/lib/pulsesecure/pulse
43 ln -s /opt/pulsesecure/resource/pulse.desktop "$pkgdir"/usr/share/applications/pulse.desktop
44 ln -s /opt/pulsesecure/lib/JUNS/net.psecure.pulse.conf "$pkgdir"/usr/share/dbus-1/system.d/net.psecure.pulse.conf
45 mkdir -p "$pkgdir"/etc/pki/ca-trust/extracted/openssl
46 ln -sf /etc/ca-certificates/extracted/ca-bundle.trust.crt "$pkgdir"/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
47 for f in $(find opt/pulsesecure/lib/JUNS/interfaces -type l); do
48 ln -s $(readlink $f) "$pkgdir"/"$f" ;
49 done
50}
51

Scan history

Scanned at (UTC)SeverityRules
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

Report a package

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

0 / 4000
Your suggestion