f5vpn-ng
Triggered rules
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:10
'license.html::https://cdn.f5.com/product/apm/apps/eula.html') -
PKGBUILD:11
source_aarch64=("linux_${_pkgname}-${pkgver}.aarch64.deb::https://${mirror}/public/download/linux_${_pkgname}.aarch64.deb")
privileged_install
The package grants elevated privileges or installs an update path outside pacman: a /etc/sudoers.d rule (often passwordless), a setuid/setgid binary, or a self-update script/service that can fetch and run future code with no checksum verification. The initial install may be verified, but the ongoing privilege + update surface is a real supply-chain / privilege-escalation risk.
-
PKGBUILD:40
chmod u+s "${srcdir}/usr/share/${pkgname}/svpn"
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 90%): The package downloads a prebuilt .deb from a non-whitelisted host (cdn.f5.com) with a SKIP'd checksum, constituting a supply-chain risk, and applies a setuid bit to a binary, which is a privileged operation.
PKGBUILD
3 offending line(s) highlighted# Maintainer: Zach Hoffman <zach@zrhoffman.net>
_pkgname=f5vpn
pkgname=${_pkgname}-ng
pkgver=7271.0.0.4
pkgrel=4
pkgdesc='VPN client using the Point-to-Point Protocol to connect to F5Networks BIG-IP APM'
arch=(aarch64 x86_64)
mirror=vpn.f5networks.net
source=('com.f5.f5vpn.service' 'desktop-file-dbus.patch'
'license.html::https://cdn.f5.com/product/apm/apps/eula.html')
source_aarch64=("linux_${_pkgname}-${pkgver}.aarch64.deb::https://${mirror}/public/download/linux_${_pkgname}.aarch64.deb")
source_x86_64=("linux_${_pkgname}-${pkgver}.x86_64.deb::https://${mirror}/public/download/linux_${_pkgname}.x86_64.deb")
sha256sums=('0c26681df93149e4339bc2de9aaf92ef4ed4cb926b8e127da72113d02c0923e5'
'c71a54a47cae863a095d03cee6b1b97c4fee49f799927abd13f44bd2374988bf'
'SKIP')
sha256sums_aarch64=('4ad1008f04119975b169963960511174660403f63897be34f91abc4333418915')
sha256sums_x86_64=('04f8c670fabfe4d125849832973c3441d741ec31b1a325d799b3e702964988c0')
b2sums=('b2b3e60a956a4d55e12695d3a034832af321c57a3da6a907600062c723d8eb44b53473effb8346a3aef9e3423378e74e28b3f1d9ea643d19b4d7ebc4034880a6'
'62cac1949c36ca2d6f74f72d83e953d9cc95d7cee60acb3f03afcdce71b00e10e3e22613c206858e94a1a91076917cb28d9b2a75133120a344a93fc4a6c6cefc'
'SKIP')
b2sums_aarch64=('48036a2df2c810bdbbbc3ab686da4f0ba1e4bb2c675fa6b0a15c848b8a59353d46ee8a6ea53fff2573961c31207efc732f5fab44b1e23106137b9708d89d9a24')
b2sums_x86_64=('f8dac5cd7c42aeee508483041400392904e6a695bb8aca267c507c399240b0ea36764de05e591de7ad39024d01be80032fc8ae33c6d5416bd07fc2cab097b911')
depends=(curl gtk3 openssl icu webkit2gtk-4.1)
optdepends=(
'xorg-xwayland: wayland support'
)
provides=("${pkgname}")
conflicts=("${_pkgname}")
url='https://techdocs.f5.com/kb/en-us/products/big-ip_apm/releasenotes/related/relnote-edge-client-7-2-7-1.html'
license=('commercial')
pkgver() {
tar -xf data.tar.xz
grep -oEm1 --text '[0-9]+(\.[0-9]+){3}' "usr/share/${pkgname}/svpn"
}
package() {
# f5vpn-ng should not be run as root, but it calls svpn which must be privileged to run ip commands
# TODO: Make a dedicated f5vpn service account own and run svpn.
chmod u+s "${srcdir}/usr/share/${pkgname}/svpn"
(
cd "${srcdir}/usr/share/applications"
patch -i "${srcdir}/desktop-file-dbus.patch"
)
install -Dm644 "com.f5.f5vpn.service" "${pkgdir}/usr/lib/systemd/user/com.f5.${_pkgname}.service"
install -Dm644 'license.html' "${pkgdir}/usr/share/licenses/${_pkgname}/license.html"
install -dm755 "${pkgdir}/usr/local/lib/F5Networks/SSLVPN/var/run" # For svpn.pid
cp -a usr "${pkgdir}"
}
Changes since previous scan
--- PKGBUILD @ 2026-07-26 00:07+++ PKGBUILD @ 2026-08-03 00:08@@ -2,7 +2,7 @@ _pkgname=f5vpn pkgname=${_pkgname}-ng pkgver=7271.0.0.4-pkgrel=3+pkgrel=4 pkgdesc='VPN client using the Point-to-Point Protocol to connect to F5Networks BIG-IP APM' arch=(aarch64 x86_64) mirror=vpn.f5networks.net@@ -12,12 +12,12 @@ source_x86_64=("linux_${_pkgname}-${pkgver}.x86_64.deb::https://${mirror}/public/download/linux_${_pkgname}.x86_64.deb") sha256sums=('0c26681df93149e4339bc2de9aaf92ef4ed4cb926b8e127da72113d02c0923e5' 'c71a54a47cae863a095d03cee6b1b97c4fee49f799927abd13f44bd2374988bf'- '4507e09374f3e6044952f375e4a1af31505b267c4e0bb066ff159e85694a3d6e')+ 'SKIP') sha256sums_aarch64=('4ad1008f04119975b169963960511174660403f63897be34f91abc4333418915') sha256sums_x86_64=('04f8c670fabfe4d125849832973c3441d741ec31b1a325d799b3e702964988c0') b2sums=('b2b3e60a956a4d55e12695d3a034832af321c57a3da6a907600062c723d8eb44b53473effb8346a3aef9e3423378e74e28b3f1d9ea643d19b4d7ebc4034880a6' '62cac1949c36ca2d6f74f72d83e953d9cc95d7cee60acb3f03afcdce71b00e10e3e22613c206858e94a1a91076917cb28d9b2a75133120a344a93fc4a6c6cefc'- '234729d2ff102638d649e46aa7da193f3a46af396cf063876cbabb71b946ef2df4731519acc48f87e2a2d51f52e45ce494e04320a3fa006fbe5fb734820f51d8')+ 'SKIP') b2sums_aarch64=('48036a2df2c810bdbbbc3ab686da4f0ba1e4bb2c675fa6b0a15c848b8a59353d46ee8a6ea53fff2573961c31207efc732f5fab44b1e23106137b9708d89d9a24') b2sums_x86_64=('f8dac5cd7c42aeee508483041400392904e6a695bb8aca267c507c399240b0ea36764de05e591de7ad39024d01be80032fc8ae33c6d5416bd07fc2cab097b911') depends=(curl gtk3 openssl icu webkit2gtk-4.1)@@ -35,12 +35,13 @@ } package() {- # f5vpn-ng should not be run as root, but it calls svpn which must be run as root+ # f5vpn-ng should not be run as root, but it calls svpn which must be privileged to run ip commands+ # TODO: Make a dedicated f5vpn service account own and run svpn. chmod u+s "${srcdir}/usr/share/${pkgname}/svpn" ( cd "${srcdir}/usr/share/applications"- patch -i "${srcdir}/desktop-file-dbus.patch" # Desktop file does not work with Dbus enabled+ patch -i "${srcdir}/desktop-file-dbus.patch" ) install -Dm644 "com.f5.f5vpn.service" "${pkgdir}/usr/lib/systemd/user/com.f5.${_pkgname}.service" install -Dm644 'license.html' "${pkgdir}/usr/share/licenses/${_pkgname}/license.html"Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | MEDIUM | 3 |
| 2026-08-02 00:16:08 | MEDIUM | 3 |
| 2026-08-01 00:11:18 | MEDIUM | 3 |
| 2026-07-31 00:14:10 | MEDIUM | 3 |
| 2026-07-30 00:17:23 | MEDIUM | 3 |
| 2026-07-29 00:25:53 | MEDIUM | 3 |
| 2026-07-28 00:07:28 | MEDIUM | 3 |
| 2026-07-27 00:24:32 | MEDIUM | 3 |
| 2026-07-26 13:32:26 | MEDIUM | 3 |
| 2026-07-26 00:07:32 | MEDIUM | 3 |
| 2026-07-25 00:13:44 | MEDIUM | 3 |
| 2026-07-24 00:02:28 | MEDIUM | 3 |
| 2026-07-23 00:14:47 | MEDIUM | 3 |
| 2026-07-22 19:21:42 | MEDIUM | 3 |
| 2026-07-22 00:29:32 | MEDIUM | 4 |
| 2026-07-21 21:18:19 | MEDIUM | 4 |
| 2026-07-21 19:19:47 | MEDIUM | 4 |
| 2026-07-21 19:17:41 | MEDIUM | 4 |