ZERO-DAY EXPLOITATION · CVE-2026-94127

F5 BIG-IP APM OAuth Servers Under Active Attack

CVE-2026-94127 Gives Unauthenticated RCE. Attackers are running code on F5 BIG-IP systems without credentials by sending crafted traffic to virtual servers where APM acts as an OAuth authorization server.

Matt Lucas  |  September 23, 2026  |  5 min
Editorial hero illustration
9.8
CVSS v3.1 score
3 days
CISA KEV deadline, Sept 22 to 25
3
affected branches: 21.1, 17.5, 17.1
0
credentials needed to exploit
TL;DR
  • What: F5 disclosed CVE-2026-94127 on September 22, a heap-based buffer overflow in BIG-IP Access Policy Manager that is already being exploited for remote code execution without authentication.
  • Impact: An attacker who can reach the OAuth virtual server can run code on the BIG-IP itself, the box that terminates sessions and issues access tokens for the applications behind it, and management-plane hardening plus Appliance mode do not block it.
  • Fix / mitigation: Install the engineering hotfix for your branch (Hotfix-BIGIP-21.1.0.2.0.30.22-ENG, Hotfix-BIGIP-17.5.1.9.0.160.12-ENG, or Hotfix-BIGIP-17.1.3.5.0.41.14-ENG), or open an F5 support ticket for the iRule mitigation if you cannot patch today.
  • Who's at risk: Any organization running BIG-IP APM 21.1.0, 17.5.0 to 17.5.1, or 17.1.0 to 17.1.3 where an access policy and an OAuth authorization server profile sit on the same virtual server.

Attackers are running code on F5 BIG-IP systems with no credentials at all. F5 disclosed CVE-2026-94127 on September 22, a heap-based buffer overflow in Access Policy Manager rated 9.8 out of 10 on CVSS v3.1 and 9.3 on CVSS v4.0. Exploitation was already happening when the advisory went out. CISA added the flaw to the Known Exploited Vulnerabilities catalog the same day and gave federal civilian agencies until September 25, three days, to apply mitigations.

The blast radius is the worst part. APM is the module that decides who reaches your applications and networks. On an affected system it is also issuing OAuth access tokens. Code execution on that device means code execution on the thing that terminates sessions, holds the certificates and mints the tokens for everything behind it.

The exact condition that makes you vulnerable

This is not every BIG-IP, and it is not every APM deployment. The vulnerable configuration is narrow and specific: an APM access policy and an OAuth authorization server profile on the same virtual server, with APM acting as the OAuth authorization server. In F5's configuration guide for APM 17.1, 17.5 and 21.0, that profile is built under Access, then Federation, then OAuth Authorization Server, then OAuth Profile, and selected in an access profile attached to the virtual server.

Systems where APM is only an OAuth client or a resource server, with no authorization server profiles configured, are not affected. That distinction is the difference between an emergency change window and a routine patch cycle, so confirm it on the box rather than from an inventory spreadsheet.

Management-plane hardening does not save you

The malicious traffic goes to the data-plane virtual server, not to the management interface. Restricting access to the management IP, which is the standard advice for most BIG-IP advisories, provides no protection here. F5 also confirms that systems running in Appliance mode are vulnerable. If the virtual server is reachable, and for an OAuth authorization server it usually is reachable from the internet by design, you are exposed.

Affected versions and hotfixes

There is a trap in that table for anyone who patched earlier this year. CVE-2025-53521, another APM flaw, landed in CISA's KEV catalog in March. Its fixes were 17.1.3 and 17.5.1.3. Both of those builds fall inside the affected ranges above. A system you already patched in March against the previous APM zero-day still needs this new hotfix if APM acts as an OAuth authorization server on it. Do not let the earlier remediation ticket close this one.

The advisory changed after publication

F5 updated its CVE record at 00:45 UTC on September 23 to narrow the condition to the authorization server role specifically. CISA's KEV entry and the CERT-EU advisory were both published before that change and describe the trigger more broadly, as an access policy plus an OAuth profile on a virtual server. If your team scoped the exposure from the KEV entry or from CERT-EU in the first hours, you may have pulled in client-only and resource-server deployments that are not actually affected. Rescope against the current F5 record before you burn a change window on systems that do not need it.

Hunting for compromise

F5 published indicators, relayed through CERT-EU. No single one of these is conclusive. The combination that should trigger a human looking at the system is repeated OAuth authentication failures, then suspicious commands, then a TMM abort shortly after.

tmctl global_oauth_stat -s total_requests,total_userinfo_requests,total_failed
grep -c "The access token is invalid" /var/log/apm
ls -la /var/core/ 2>/dev/null | grep -i tmm

Order of operations matters

CISA: iRule first, then the hotfix

CISA told agencies to apply the iRule mitigation first "to allow for proactive forensic triage," then "install the final vendor patch as soon as possible." CERT-EU sequences it the same way: preserve forensic evidence, apply the hotfix, check for signs of compromise, start incident response if you find any. The iRule is not published publicly. Customers obtain it by opening a ticket with F5 support, so open that ticket now even if you plan to patch tonight.

What the advisories do not tell you

Three gaps are worth stating plainly, because your incident response plan has to account for them. F5's CVE record and the CISA and CERT-EU advisories do not say how many systems were attacked, who the attackers are, or which organizations were targeted. They also do not say whether installing the hotfix removes access an attacker already established. Treat the hotfix as closing the door, not as evicting anyone already inside.

For a device this central, that means the patch is step one of three. Patch, hunt using the indicators above, and then rotate what the box holds: OAuth signing keys, client secrets, device certificates and any administrative credentials stored on or reachable from the BIG-IP. If you find indicators, assume the tokens that device issued during the exposure window are untrustworthy and invalidate sessions downstream.

Priority order for the next 24 hours

Fix It Yourself

Everything above is what happened. This is what to run. The check commands change nothing.

Check whether you are exposed

Show the running TMOS version so you can match it against the affected ranges

tmsh show sys version

List APM OAuth configuration on the box, to see whether any authorization server profile exists

tmsh list apm oauth | grep -iE 'oauth|profile|authorization'

Count the failed UserInfo requests F5 names as the primary indicator and show the top source IPs

grep "The access token is invalid" /var/log/apm | awk '{print $NF}' | sort | uniq -c | sort -rn | head -20

Close it

Save a full configuration archive before any change, so you can roll back and keep evidence

tmsh save sys ucs /var/local/ucs/pre-hotfix-$(date +%Y%m%d).ucs

Install the engineering hotfix for your branch after downloading it from F5 (substitute your branch hotfix name and an inactive boot volume)

tmsh install sys software hotfix Hotfix-BIGIP-17.1.3.5.0.41.14-ENG volume HD1.2

Containment only, if you cannot patch and have not yet received the iRule from F5 support: disable the exposed OAuth virtual server (substitute its real name)

tmsh modify ltm virtual /Common/vs_oauth_as disabled

Prompts for the agent you already run

Paste this when you need to know which BIG-IP devices in your fleet are actually in scope

I need to scope exposure to F5 CVE-2026-94127 across our BIG-IP fleet. For each device in our inventory, run `tmsh show sys version` and `tmsh list apm oauth` over SSH, read only, and build a table with hostname, TMOS version, whether the version falls in 21.1.0, 17.5.0 to 17.5.1, or 17.1.0 to 17.1.3, and whether any virtual server has both an APM access policy and an OAuth authorization server profile attached. Show me the raw command output for every device alongside your conclusion, not just the table. Flag any device where the OAuth role is ambiguous rather than guessing. Do not run any tmsh modify, install, save or delete command, and do not change any configuration. Stop and show me the scoped list before proposing any remediation.

Paste this when you have a candidate device and need to triage it for compromise before patching

Triage this BIG-IP for the F5 CVE-2026-94127 indicators. Collect, read only: the count and source IPs of lines in /var/log/apm containing the error description "The access token is invalid", any entries in /var/log/audit within a 30 minute window on either side of those failures, the output of `tmctl global_oauth_stat -s total_requests,total_userinfo_requests,total_failed`, and any TMM core files present. Correlate them on time: F5's pattern is 10 or more failed UserInfo requests from one IP in a short window, then suspicious commands, then a TMM SIGABRT. Copy the raw log excerpts into your report and show your timeline reasoning. Do not delete, rotate or truncate any log, do not install a hotfix, and do not restart any service. Stop after the report and wait for me to decide on incident response.

What to alert on

The alertable observable is in the APM log, /var/log/apm, on the BIG-IP itself: failed OAuth UserInfo requests carrying the error description string "The access token is invalid." Ship that log to your SIEM if you are not already, then alert on 10 or more of those events from a single source IP address inside a short window (F5 does not define the window, so start at five minutes and tune). On its own that pattern is noisy and can come from a broken client, so raise severity when it is followed within minutes by either a new entry in /var/log/audit showing a command the running administrators did not issue, or a TMM abort: watch for the SOD daemon sending a SIGABRT to TMM in /var/log/ltm and for new core files appearing under /var/core. The three in sequence, failed UserInfo requests, then audit-log commands, then a TMM SIGABRT, is the chain F5 describes and is what should page a human. Pair the log rule with a configuration-drift check on the key that defines exposure: any virtual server that gains both an APM access profile and an OAuth authorization server profile should generate a ticket, because that is the configuration that turns this CVE into unauthenticated code execution.

Questions about your exposure?

RedEye Security provides assessments for organizations that need to understand their real risk.

Talk to us