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
7
pkgname=cisco-anyconnect
8
pkgver=4.10.08029
9
pkgrel=2
10
pkgdesc='Cisco AnyConnect Secure Mobility Client'
11
url='https://www.cisco.com/c/en/us/support/security/anyconnect-secure-mobility-client-v4-x/model.html'
12
arch=('x86_64')
13
depends=('libxml2' 'ca-certificates' 'libxml2-legacy')
14
optdepends=(
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
)
21
license=('custom')
22
23
# Stripping the binaries trips some sort of an integrity check inside vpnagentd.
24
options=('!strip')
25
26
source=(
27
"https://helpdesk.ugent.be/vpn/download/anyconnect-linux64-$pkgver-predeploy-k9.tar.gz"
28
'AnyConnectLocalPolicy.xml'
29
"$pkgname.sh"
30
)
31
32
sha512sums=(
33
'4ab4de736fc03f1261ee417a0afeb277bfcaca78b66671021d3ffba9640af352d531a6a32c8ea92e69ca0bf862ba0b96e5e5a67df86fb541c6f3ddad7c054f45'
34
'4b6af68475ec427e51d0811b07637b132eb7a49b70de4142ea1f11f6c96c330c1cd368c178db86116457fb9a3eea1800873d3a1f03a0560fbec6fa63d88dc8ce'
35
'a5de5f992f81c60bae9bcf7c784d3e335f1a709d76b363ec7d6d0e1846e2e23481b50dcbe7826755a3911a5f8fb53432a3d4cff1cc4bc5a13f9aedcf9a4c8c99'
36
)
37
38
package() {
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) | Severity | Rules |
|---|---|---|
| 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 |