Apache CXF: Race condition in OAuth2 authorization code consumption
Summary
Apache CXF's JPA-backed OAuth2 authorization code grant provider checks and deletes an authorization code in two non-atomic steps. A remote attacker who already holds a valid authorization code can send concurrent token exchange requests and obtain multiple valid access tokens from that single code. Exploitation requires a valid code, precise timing, and a deployment that uses this provider with a shared relational database under READ_COMMITTED isolation.
Affected
- Apache CXF (org.apache.cxf:cxf-rt-rs-security-oauth2) 4.2.0 to before 4.2.4
- Apache CXF (org.apache.cxf:cxf-rt-rs-security-oauth2) 4.0.0 to before 4.1.9
- Apache CXF (org.apache.cxf:cxf-rt-rs-security-oauth2) before 3.6.13
- Earliest affected 3.x version: Unknown. Check the Apache advisory.
- Only deployments that use the JPA OAuth2 authorization code grant provider are affected.
Fixed in
- Apache CXF 4.2.4
- Apache CXF 4.1.9
- Apache CXF 3.6.13
Workaround
No official workaround is published. Interim measures: confirm whether the JPA OAuth2 code grant provider is in use, restrict who can reach the token endpoint, and alert on more than one token issued from the same authorization code.
Exploitation
- No known exploitation in the wild.
- No public proof of concept found.
- CISA SSVC: Exploitation none, Automatable no, Technical Impact total.
- EPSS is low (about 0.002).
Our recommendation
- Identify whether any application uses Apache CXF with the JPA OAuth2 authorization code grant provider, including embedded or downstream Maven packages.
- Upgrade affected systems to 4.2.4, 4.1.9 or 3.6.13 in the next maintenance window.
- Replace or upgrade unsupported 3.4.x and 3.5.x branches.
- Until patched, restrict token endpoint access and monitor for multiple tokens issued from one authorization code.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- Apache CXF security advisories index cwiki.apache.org
- Apache mailing list thread (CVE-2026-73179) lists.apache.org
- oss-security announcement CVE-2026-73179 www.openwall.com
- HeroDev vulnerability directory: CVE-2026-73179 www.herodevs.com
- VulDB: CVE-2026-73179 vuldb.com
- Vulners VulnRichment: CVE-2026-73179 vulners.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 20:26.
Original description (NVD)
Improper enforcement of single-use authorization code semantics in the JPA OAuth2 authorization code grant provider in Apache CXFallows a remote attacker to obtain multiple valid access tokens from a single authorization code via concurrent token exchange requests that race the non-atomic find-then-delete operation against a shared relational database under READ_COMMITTED isolation. Users are recommended to upgrade to versions 4.2.4 or 4.1.9 or 3.6.13, which fixes this issue.
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
