F5 has released emergency security updates for CVE-2026-94127, a critical vulnerability in BIG-IP Access Policy Manager (APM) with a CVSS score of 9.8 and reports of active in-the-wild exploitation. The impact is as serious as edge infrastructure gets: an unauthenticated remote attacker can execute code on a BIG-IP APM deployment that is reachable over the network. Because BIG-IP often terminates TLS, brokers authentication, publishes internal applications, and sits directly on the trust boundary, compromise can expose session material, credential flows, internal virtual-server topology, and a launching point into protected segments.
Treat this as an incident-priority vulnerability, not a routine patch cycle item. If APM is provisioned and reachable from untrusted networks, assume scanning is already happening and validate both exposure and integrity before change windows open.
What is at risk
The affected component is F5 BIG-IP APM, commonly deployed for remote access, SSO, MFA federation, per-app VPN, reverse-proxy access policies, and identity-aware application publishing. High-risk patterns include:
- APM-enabled virtual servers reachable from the Internet or partner networks.
- Self-IP, management, or iControl/TMUI services that are broader than intended.
- Legacy or end-of-support BIG-IP branches that cannot receive the emergency fix.
- APM policies protecting high-value apps such as admin portals, ERP, VDI, EHR, or CI/CD.
- Environments where BIG-IP terminates TLS and therefore stores private keys and session cookies.
The news item and F5 warning emphasize that attackers are already exploiting the flaw. The exact request pattern has not been publicly expanded in the summary, so defenders should avoid over-fitting to a single URI and instead focus on APM exposure, unexpected process execution from BIG-IP services, new files/config changes, and authentication/session anomalies around the edge.
Technical analysis
CVE: CVE-2026-94127
Severity: Critical, CVSS 9.8
Attack vector: Network-based, unauthenticated remote code execution against BIG-IP APM
Exploitation status: Confirmed active exploitation in the wild per the F5 warning/reporting
Defensive priority: Immediate mitigation, emergency patch validation, and compromise assessment
From a defender's perspective, unauthenticated RCE on APM means the exploit path likely begins with crafted traffic to an APM-protected listener or APM-specific request handling logic before policy decisions complete. The important operational facts are not the payload bytes; they are the blast radius:
- Pre-auth execution: No valid session, credential, or MFA assertion is required.
- Edge context: Successful code execution lands on a device that sees decrypted traffic and policy/session metadata.
- Persistence potential: Attackers may attempt config changes, new local accounts, SSH keys, cron/systemd artifacts, web shell-like handlers, or modified startup/config hooks.
- Credential and token exposure: BIG-IP platforms may hold TLS private keys, APM session data, SSO artifacts, and downstream trust relationships.
- Limited telemetry by default: Many organizations collect LB health logs but not APM request detail, process execution, file-integrity events, or config-commit auditing from BIG-IP.
Because emergency updates were released, do not assume every branch receives the same fixed build. Pull the exact vulnerable/fixed version matrix from F5's advisory for CVE-2026-94127 and map it to each TMOS/BIG-IP instance, including vCMP guests, VE instances, cloud marketplace images, and HA pairs.
Immediate actions — first 60 minutes
- Inventory every BIG-IP with APM provisioned:
tmsh list sys provision, virtual servers, access profiles, listeners, NATs, and route domains. - Identify Internet-reachable APM virtual servers and any management/TMUI/iControl exposure.
- Apply emergency vendor updates per F5 advisory; if patching cannot occur immediately, reduce exposure now by restricting virtual-server sources, disabling unused APM access profiles, and placing the service behind an upstream allowlist/WAF only if that does not break required authentication flows.
- Capture forensic evidence before reboot/patch where feasible: UCS archive,
/var/logexports, APM session/reporting logs, process list, netstat/listeners, recent config commits, admin logins, and file timestamps in web/config paths. - Fail over deliberately if needed: patch standby first, validate, force failover, patch former active, then re-verify sync state.
Detection content
The following detections focus on behaviors that are high-signal for edge-device compromise without pretending we know a private exploit signature. Tune paths and source addresses to your BIG-IP naming, syslog facility, and load-balancer VLANs.
---
title: BIG-IP APM Service Spawning Interactive or Scripting Shell
description: Detects suspicious shell or interpreter execution parented to BIG-IP web/traffic services after possible APM exploitation. Intended for Linux/BIG-IP process telemetry forwarded via syslog/EDR.
references:
- https://attack.mitre.org/techniques/T1059/
- https://securityaffairs.com/199619/security/f5-big-ip-apm-zero-day-exploited-in-zero-day-rce-attacks.html
author: Security Arsenal
date: 2026/08/07
status: experimental
tags:
- attack.execution
- attack.t1059
logsource:
product: linux
category: process_creation
detection:
selection_parent:
ParentImage|contains:
- '/httpd'
- '/tmm'
- '/apm'
- '/java'
- '/bd'
- '/icrd'
selection_child:
Image|endswith:
- '/sh'
- '/bash'
- '/dash'
- '/python'
- '/python3'
- '/perl'
- '/curl'
- '/wget'
- '/nc'
- '/ncat'
condition: selection_parent and selection_child
falsepositives:
- Rare F5 support scripts and iCall/iApp maintenance; validate against change records and support cases.
level: high
---
title: Suspicious APM Request Pattern Before Authentication
description: Detects anomalous requests to APM endpoints with encoded traversal, oversized bodies, or command-like metacharacters prior to session establishment. Use with WAF/ASM/APM request logs, not as a sole indicator.
references:
- https://attack.mitre.org/techniques/T1190/
- https://securityaffairs.com/199619/security/f5-big-ip-apm-zero-day-exploited-in-zero-day-rce-attacks.html
author: Security Arsenal
date: 2026/08/07
status: experimental
tags:
- attack.initial_access
- attack.t1190
logsource:
category: webserver
detection:
selection_uri:
uri|contains:
- '/my.policy'
- '/vdesk/'
- '/sam/'
- '/oauth/'
- '/apm/'
- '/f5vpn/'
selection_payload:
uri|contains:
- '%2e%2e'
- '%252e'
- '%00'
- 'cmd='
- 'exec='
- '/bin/sh'
- '/bin/bash'
- '${IFS}'
condition: selection_uri and selection_payload
falsepositives:
- Scanner noise and broken SSO clients; require correlation with new processes, file writes, config commits, or admin logins.
level: medium
---
title: Unexpected BIG-IP Configuration Commit or Local Admin Change
description: Detects config saves/commits, new local users, SSH key changes, or management-plane commands around an APM exploitation window. Map to centralized syslog from BIG-IP audit logs.
references:
- https://attack.mitre.org/techniques/T1136/
- https://attack.mitre.org/techniques/T1078/
author: Security Arsenal
date: 2026/08/07
status: experimental
tags:
- attack.persistence
- attack.t1136
- attack.defense_evasion
logsource:
product: linux
service: auditd
detection:
selection:
type: 'EXECVE'
argc|gte: 1
a0|contains:
- 'tmsh'
- 'useradd'
- 'adduser'
- 'usermod'
- 'sshd'
- 'bash'
a1|contains:
- 'create auth user'
- 'modify auth user'
- 'save sys config'
- 'load sys config'
- 'modify ltm virtual'
- 'create ltm virtual'
- 'authorized-keys'
- '/config/ssh'
condition: selection
falsepositives:
- Legitimate automation and change windows; alert when outside approved change tickets or from unknown admin source IPs.
level: high
let window_start = ago(14d);
union isfuzzy=true
(
CommonSecurityLog
| where TimeGenerated >= window_start
| where DeviceVendor =~ "F5" or DeviceProduct has_any ("BIG-IP","APM","ASM","Advanced WAF")
| extend uri = coalesce(RequestURL, RequestContext, AdditionalExtensions)
| where uri has_any ("/my.policy","/vdesk/","/sam/","/oauth/","/apm/","/f5vpn/")
or Message has_any ("%2e%2e","%252e","%00","/bin/sh","/bin/bash","cmd=","exec=","${IFS}")
| project TimeGenerated, SourceIP, DestinationIP, DestinationPort, RequestMethod, uri, Message, DeviceName, DeviceAction, Severity
),
(
Syslog
| where TimeGenerated >= window_start
| where Computer has_any ("bigip","f5","ltm","apm") or Facility in ("local0","local1","daemon","audit")
| where SyslogMessage has_any ("tmsh","save sys config","create auth user","modify auth user","authorized-keys","/bin/sh","/bin/bash","tmm","httpd","APM")
| project TimeGenerated, Computer, Facility, SeverityLevel, HostIP, ProcessName, SyslogMessage
),
(
DeviceProcessEvents
| where TimeGenerated >= window_start
| where InitiatingProcessFileName has_any ("httpd","tmm","java","icrd","bd","apm")
and FileName in~ ("sh","bash","dash","python","python3","perl","curl","wget","nc","ncat")
| project TimeGenerated, DeviceName, AccountName, InitiatingProcessFileName, InitiatingProcessCommandLine, FileName, ProcessCommandLine, SHA256
)
| order by TimeGenerated desc;
-- Velociraptor hunt for post-exploitation artifacts on Linux/BIG-IP-like hosts.
-- Deploy only where supported/approved; BIG-IP itself is usually triaged via UCS, tmsh, and syslog export rather than an agent.
LET suspicious_procs = SELECT Pid, Ppid, Name, Exe, CommandLine, Username, CreateTime
FROM pslist()
WHERE CommandLine =~ '(/bin/sh|/bin/bash|python|perl|curl|wget|nc|ncat)'
OR Exe =~ '/(tmp|var/tmp|dev/shm)/'
LET suspicious_files = SELECT FullPath, Size, Mtime, Ctime, Mode
FROM glob(globs=['/tmp/**','/var/tmp/**','/dev/shm/**','/config/ssh/**','/root/.ssh/**','/home/*/.ssh/**'])
WHERE Mtime > now() - 14*24*3600
AND (FullPath =~ 'authorized_keys' OR FullPath =~ '\.(sh|py|pl|elf|so)$' OR Mode =~ '777')
LET listeners = SELECT * FROM netstat()
WHERE State =~ 'LISTEN' AND (Laddr.Port in [22,443,8443,10443] OR Raddr.IP =~ '^(0\.0\.0\.0|::)$')
SELECT 'process' AS ArtifactType, * FROM suspicious_procs
UNION ALL
SELECT 'file' AS ArtifactType, FullPath AS Name, NULL AS Pid, NULL AS Ppid, FullPath AS Exe, Mode AS CommandLine, NULL AS Username, Mtime AS CreateTime FROM suspicious_files
UNION ALL
SELECT 'listener' AS ArtifactType, Laddr.IP AS Name, PID AS Pid, NULL AS Ppid, Status AS Exe, Laddr.Port AS CommandLine, NULL AS Username, NULL AS CreateTime FROM listeners
Verification and remediation script
Run during evidence preservation and again after patching. Replace fixed-build checks with the exact build numbers from F5's CVE-2026-94127 advisory; do not rely on this script to determine patch status by itself.
# Run on BIG-IP bash/advanced shell with appropriate privileges. Read-only verification first.
set -euo pipefail
TS=$(date -u +%Y%m%dT%H%M%SZ)
OUT="/var/tmp/f5_cve_2026_94127_check_${TS}"
mkdir -p "$OUT"
{
echo "=== identity/version ==="
tmsh show sys version
tmsh list sys provision
echo "=== HA/sync ==="
tmsh show cm failover-status 2>/dev/null || true
tmsh show cm sync-status 2>/dev/null || true
echo "=== APM exposure ==="
tmsh list ltm virtual one-line | egrep -i 'apm|access|profile|destination' || true
tmsh list apm profile access one-line 2>/dev/null || true
echo "=== listeners/routes ==="
netstat -lntup 2>/dev/null | egrep ':(22|80|443|8443|10443)\b' || true
tmsh list net self one-line
tmsh list net route one-line | head -200
echo "=== management plane guardrails ==="
tmsh list sys httpd one-line | egrep -i 'allow|ssl|auth' || true
tmsh list sys sshd one-line | egrep -i 'allow|banner|port' || true
tmsh list sys management-ip one-line 2>/dev/null || true
echo "=== recent admin/auth/config indicators ==="
tail -n 500 /var/log/audit 2>/dev/null | egrep -i 'tmsh|create auth user|modify auth user|save sys config|load sys config|authorized-keys' || true
tail -n 300 /var/log/secure 2>/dev/null | egrep -i 'Accepted|Failed|session opened|sudo|su:' || true
echo "=== suspicious recent files ==="
find /tmp /var/tmp /dev/shm /config/ssh /root/.ssh /home/*/.ssh -type f -mtime -14 -printf '%TY-%Tm-%Td %TH:%TM:%TS %m %u %g %p\n' 2>/dev/null | sort || true
echo "=== suspicious processes ==="
ps auxww | egrep '/(bin/)?(sh|bash|dash|python3?|perl|curl|wget|nc|ncat)\b' | egrep -v 'egrep|f5_cve_2026_94127_check' || true
} | tee "$OUT/f5_check.txt"
tmsh save sys config
qkview -s0 -f "$OUT/support.qkview" >/dev/null 2>&1 || true
chmod 600 "$OUT"/* 2>/dev/null || true
echo "Evidence bundle: $OUT"
echo "Next: compare installed build to F5 fixed builds for CVE-2026-94127, remove untrusted exposure, patch standby/HA first, then rotate credentials/keys if integrity is uncertain."
Remediation and hardening
- Patch to the exact F5 fixed release listed in the official CVE-2026-94127 advisory. Confirm every device, including HA peers, vCMP guests, VE/cloud instances, and lab units that share images or credentials.
- If patching is delayed, temporarily remove APM from untrusted reachability where business tolerable: restrict virtual-server source addresses, disable unused access profiles, block management/TMUI/iControl from user and Internet networks, and enforce ACLs at upstream firewalls.
- Lock down the management plane. TMUI, SSH, and iControl REST should never be Internet-exposed. Restrict to dedicated management VRFs/hosts, require MFA at the jump path, and alert on any new allowed-address change.
- Hunt across the edge and identity path. Review APM session reports, SSO/OAuth/SAML logs, TLS key usage indicators, admin logins, config commits, and downstream application authentication anomalies after the exposure window.
- Compromise assessment triggers rotation. If you find unexplained processes, files, config commits, or admin access: fail over, isolate, collect qkview/UCS, then rotate TLS private keys, local and directory-integrated admin credentials, API tokens, service accounts, APM machine/account secrets, and any certificates whose private keys resided on the device.
- Rebuild from known-good when integrity is doubtful. Edge devices are difficult to clean with confidence. Prefer patched clean installation plus validated config restore over in-place removal of artifacts.
- Prevent recurrence. Add BIG-IP process/file/config telemetry to the SIEM, alert on APM virtual servers created outside change control, track CISA KEV/vendor emergency advisories in vuln workflow, and test emergency patch runbooks for HA pairs quarterly.
Vendor/source reference: https://securityaffairs.com/199619/security/f5-big-ip-apm-zero-day-exploited-in-zero-day-rce-attacks.html. Use F5's advisory as the authoritative source for affected versions, fixed builds, mitigations, and any CISA remediation deadline if assigned.
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.