cisco-anyconnect

maintainer crabvk · 19 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The source is a prebuilt Cisco AnyConnect client from a university IT department's official helpdesk, which is a plausible and trusted host for distributing this software; the package installs only the project's own binaries and data without executing remote code or obfuscation.

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 90%): The source is a prebuilt Cisco AnyConnect client from a university IT department's official helpdesk, which is a plausible and trusted host for distributing this software; the package installs only the project's own binaries and data without executing remote code or obfuscation.

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:27 "https://helpdesk.ugent.be/vpn/download/anyconnect-linux64-$pkgver-predeploy-k9.tar.gz"

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Vyacheslav Konovalov <🦀vk@protonmail.com>
2# Contributor: Posi <posi1981@gmail.com>
3# Contributor: Mikhail Velichko <efklid@gmail.com>
4# Contributor: Michael Duncan Hammond <mhammond9@radford.edu>
5# Contributor: K900 <me@0upti.me>
6
7pkgname=cisco-anyconnect
8pkgver=4.10.08029
9pkgrel=2
10pkgdesc='Cisco AnyConnect Secure Mobility Client'
11url='https://www.cisco.com/c/en/us/support/security/anyconnect-secure-mobility-client-v4-x/model.html'
12arch=('x86_64')
13depends=('libxml2' 'ca-certificates' 'libxml2-legacy')
14optdepends=(
15 'hicolor-icon-theme: required by desktop shortcuts'
16 'gtk2: required by vpnui'
17 'glib2: required by vpnui'
18 'gtk3: required by acwebhelper'
19 'webkit2gtk: required by acwebhelper'
20)
21license=('custom')
22
23# Stripping the binaries trips some sort of an integrity check inside vpnagentd.
24options=('!strip')
25
26source=(
27 "https://helpdesk.ugent.be/vpn/download/anyconnect-linux64-$pkgver-predeploy-k9.tar.gz"
28 'AnyConnectLocalPolicy.xml'
29 "$pkgname.sh"
30)
31
32sha512sums=(
33 '4ab4de736fc03f1261ee417a0afeb277bfcaca78b66671021d3ffba9640af352d531a6a32c8ea92e69ca0bf862ba0b96e5e5a67df86fb541c6f3ddad7c054f45'
34 '4b6af68475ec427e51d0811b07637b132eb7a49b70de4142ea1f11f6c96c330c1cd368c178db86116457fb9a3eea1800873d3a1f03a0560fbec6fa63d88dc8ce'
35 'a5de5f992f81c60bae9bcf7c784d3e335f1a709d76b363ec7d6d0e1846e2e23481b50dcbe7826755a3911a5f8fb53432a3d4cff1cc4bc5a13f9aedcf9a4c8c99'
36)
37
38package() {
39 cd "anyconnect-linux64-$pkgver/vpn"
40
41 # Install binaries.
42 for binary in vpnagentd vpn vpndownloader vpndownloader-cli manifesttool_vpn acinstallhelper \
43 vpnui acwebhelper load_tun.sh; do
44 install -Dm755 $binary -t "$pkgdir/opt/cisco/anyconnect/bin"
45 done
46
47 # Install libs.
48 for lib in libvpnagentutilities.so libvpncommon.so libvpncommoncrypt.so libvpnapi.so \
49 libacruntime.so libacciscossl.so libacciscocrypto.so cfom.so libboost_date_time.so \
50 libboost_filesystem.so libboost_regex.so libboost_system.so libboost_thread.so \
51 libboost_signals.so libboost_chrono.so libaccurl.so.4.8.0; do
52 install -Dm755 $lib -t "$pkgdir/opt/cisco/anyconnect/lib"
53 done
54
55 # The installer copies all the other symlinks, but creates this one for some reason,
56 # so lets just create it ourselves.
57 ln -s /opt/cisco/anyconnect/lib/libaccurl.so.4.8.0 "$pkgdir/opt/cisco/anyconnect/lib/libaccurl.so.4"
58
59 # Install plugins.
60 # We intentionally don't install the telemetry plugin here, because it tries to write to /opt.
61 for plugin in libacwebhelper.so libvpnipsec.so; do
62 install -Dm755 $plugin -t "$pkgdir/opt/cisco/anyconnect/bin/plugins"
63 done
64
65 cp -R resources "$pkgdir/opt/cisco/anyconnect/resources"
66
67 # Install some misc stuff.
68 install -Dm444 AnyConnectProfile.xsd -t "$pkgdir/opt/cisco/anyconnect/profile"
69
70 for file in ACManifestVPN.xml update.txt AnyConnectLocalPolicy.xsd; do
71 install -Dm444 $file -t "$pkgdir/opt/cisco/anyconnect"
72 done
73
74 # Install desktop file for vpnui.
75 install -Dm644 resources/vpnui48.png "$pkgdir/usr/share/icons/hicolor/48x48/apps/$pkgname.png"
76 install -Dm644 resources/vpnui128.png "$pkgdir/usr/share/icons/hicolor/128x128/apps/$pkgname.png"
77
78 sed -i "s|^Exec=.*|Exec=$pkgname|g" com.cisco.anyconnect.gui.desktop
79 install -Dm644 com.cisco.anyconnect.gui.desktop -t "$pkgdir/usr/share/applications"
80
81 # Install license.
82 for license in license.txt OpenSource.html; do
83 install -Dm644 $license -t "$pkgdir/usr/share/licenses/$pkgname"
84 done
85
86 # Install systemd unit for vpnagentd.
87 install -Dm644 vpnagentd.service -t "$pkgdir/usr/lib/systemd/system"
88
89 install -Dm755 "$srcdir/$pkgname.sh" "$pkgdir/usr/bin/$pkgname"
90
91 # Install CA certificates.
92 mkdir -p "$pkgdir/opt/.cisco/certificates/ca"
93
94 # First, install our own system root.
95 ln -s /etc/ca-certificates/extracted/tls-ca-bundle.pem "$pkgdir/opt/.cisco/certificates/ca/system-ca.pem"
96
97 # Then, install Cisco's, because it doesn't actually trace to any of the trusted roots we have,
98 # (thanks, VeriSign).
99 install -Dm644 VeriSignClass3PublicPrimaryCertificationAuthority-G5.pem -t "$pkgdir/opt/.cisco/certificates/ca"
100
101 # Install custom policy to disable auto updates,
102 # so AnyConnect won't attempt to update itself as root,
103 # and then run all over both itself and our packaging.
104 #
105 # NOTE: This may break some really quirky setups that require downloading files from the server,
106 # but there's no other way around it that we could find.
107 install -Dm644 "$srcdir/AnyConnectLocalPolicy.xml" -t "$pkgdir/opt/cisco/anyconnect"
108}
109

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