Skip to main content

Apache CXF CVE-2026-73179

| EUVDEUVD-2026-95695 HIGH
Time-of-check Time-of-use (TOCTOU) Race Condition (CWE-367)
2026-10-09 apache GHSA-4856-vwpx-pmq8
8.1
CVSS 3.1 · Vendor: apache
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain valid authorization code
  2. Delivery
    Fire concurrent token-exchange requests
  3. Exploit
    Race non-atomic find-then-delete
  4. Execution
    Receive multiple valid access tokens
  5. Impact
    Access protected resources with surplus tokens

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture TOCTOU prevention
Exploitation Conditions

Exploitation requires that the target run the Apache CXF OAuth2 authorization server using the JPA-backed authorization code grant provider persisting codes to a shared relational database operating under READ_COMMITTED isolation - this specific provider/config is the prerequisite, not default for every CXF deployment. The attacker must also possess a single valid, not-yet-redeemed authorization code and be able to issue multiple token-exchange requests concurrently to win the race. Limiting factors: success is probabilistic due to the timing race (AC:H); stronger database isolation (e.g., SERIALIZABLE) or the patched atomic delete removes the window; and affected versions are bounded to CXF <3.6.13, 4.2.0-<4.2.4, and 4.0.0-<4.1.9.

Impact

Signals are consistent in pointing to a real-but-conditional risk rather than a mass-exploitation emergency. The CVSS 3.1 base score of 8.1 (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H) reflects a network-reachable flaw with no required privileges or user interaction, but critically carries AC:H - exploitation depends on winning a timing race against a non-atomic find-then-delete under READ_COMMITTED database isolation, which is not deterministic. EPSS corroborates this: 0.22% (11th percentile) indicates very low predicted exploitation probability, aligning with the high attack complexity and the narrow precondition that the attacker must already possess a valid authorization code. The flaw is NOT in CISA KEV and there is no public exploit identified at time of analysis, so there is no evidence of active exploitation. Note a nuance the CVSS vector understates: although PR:N is scored (the token endpoint requires no pre-existing account), the attacker must hold or intercept a legitimate OAuth2 authorization code, so this is realistically an abuse of the OAuth flow rather than a fully anonymous attack - verify operational context before treating it as trivially remote. Overall: a legitimately serious correctness/authorization defect worth patching promptly for anyone running the CXF JPA OAuth2 authorization-code provider, but not an emergency 'drop-everything' item given AC:H, low EPSS, no KEV, and no known POC.

Exploit ScenarioDerived

An OAuth2 client (or an attacker who has intercepted a single authorization code) submits several token-exchange requests to the Apache CXF authorization server simultaneously. Because the JPA provider performs a non-atomic find-then-delete on the code under READ_COMMITTED isolation, multiple concurrent requests each find the code still present and are each issued a valid access token, defeating single-use semantics. No public exploit code is identified, and the timing-dependent race (AC:H) makes reliable exploitation non-trivial.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Oct 15, 2026

Concurrent token-exchange requests against Apache CXF's JPA-backed OAuth2 authorization code grant provider can redeem a single authorization code more than once, yielding multiple valid access tokens from one code. Only deployments running the JPA authorization code provider that persists codes to a shared relational database under READ_COMMITTED isolation and that expose the token endpoint to remote callers are affected; versions below 3.6.13, 4.0.0 through 4.1.8, and 4.2.0 through 4.2.3 are in scope. Exploitation is unauthenticated per the CVSS vector (PR:N) but carries a high attack-complexity rating because the attacker must already hold one unredeemed code and win a timing race, so success is probabilistic; EPSS is low at 0.22% (11th percentile) and no public exploit identified at time of analysis, making this a real-but-conditional risk rather than a mass-exploitation emergency.

Earlier versions of this analysis (1)
v1 Oct 09, 2026 - 11:27

Improper enforcement of the single-use authorization code requirement in Apache CXF's JPA-backed OAuth2 authorization code grant provider lets an authenticated remote attacker holding one valid, unredeemed authorization code obtain multiple valid access tokens from that single code. The attacker achieves this by issuing tightly concurrent token-exchange requests that race the provider's non-atomic find-then-delete lookup against a shared relational database running under READ_COMMITTED isolation, so more than one request can read the code before any request deletes it. Exploitation is bounded: it requires a valid code, a JPA token store on a shared database, and the ability to win the timing race - no public exploit code was identified at time of analysis, and no KEV listing or EPSS score was provided. Vendor-released patches are available in 4.2.4, 4.1.9, and 3.6.13.

RemediationAI

Vendor-released patch: upgrade to Apache CXF 4.2.4 for the 4.2.x line, 4.1.9 for 4.0.0-4.1.x deployments, or 3.6.13 for all releases below 3.6.13 - these versions make authorization code redemption atomic and eliminate the find-then-delete race window (advisory: https://lists.apache.org/thread.html/6msbm601o6ogfgdzdbtbrmgspmz50nxk). If an immediate upgrade is not possible, raise the transaction isolation level of the token-store datasource to SERIALIZABLE (or REPEATABLE READ on engines where it is enforced) so concurrent redemptions on the same code row conflict instead of both succeeding, accepting the trade-off of increased serialization failures, retry logic, and lock contention on a hot token endpoint; alternatively add a database unique constraint or an atomic conditional delete/optimistic-locking version column on the persisted authorization code so a second concurrent redemption fails rather than issuing a token, which requires schema and code changes and must be validated against CXF's JPA mappings. Additional compensating controls with clear costs: disable or replace the JPA authorization code provider in favor of an in-memory or single-node code store where the deployment topology permits it (breaks horizontal scaling and multi-node failover), and apply strict per-client rate limiting or serialization at the token endpoint plus alerting on multiple token issuances from one authorization code (reduces but does not remove the race, and can throttle legitimate clients). No vendor-released patch was identified for versions outside the three fixed lines, and rotating or shortening access token lifetimes limits, but does not prevent, the value an attacker gains from duplicate tokens; note EPSS is only 0.22% and no public exploit has been identified, so the upgrade can be scheduled with normal change management for internet-facing authorization servers while prioritizing any instance that already serves untrusted clients.

Affected VersionsENISA

Apache CXF 0 <3.6.13
Apache CXF 4.2.0 <4.2.4
Apache CXF 4.0.0 <4.1.9

Affected Packages

euvd apache_cxf fix: 3.6.13, 4.1.9, 4.2.4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Apache CXF's OAuth2 module implements the RFC 6749 authorization code grant, and the JPA variant stores issued authorization codes as entities in a relational database rather than in memory. During token exchange the provider performs a find-then-delete sequence: it selects the code row to validate it, then deletes it to enforce single-use semantics. Because that pair of operations is not atomic and the database runs under READ_COMMITTED isolation (the PostgreSQL and MySQL/MariaDB default), two or more token requests arriving simultaneously can both complete the find step on the same still-present row before either delete commits, so each request proceeds to mint its own access token - a classic CWE-367 time-of-check time-of-use race condition on a shared resource. No authorization checks are bypassed and no tokens are forged; the flaw is purely in the single-use enforcement, which is why the impact is scoped to confidentiality and integrity (duplicate token issuance) rather than to the OAuth2 credential or signing keys. Upstream remediation makes the redemption atomic so only one concurrent request can claim a code, closing the race window; the CPE cpe:2.3:a:apache_software_foundation:apache_cxf confirms the affected component is the Apache CXF distribution itself rather than a downstream integration.

Know when Apache Cxf gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (apache) PRIMARY 8.1 LOW
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.4 HIGH

Network token endpoint (AV:N); timing race under READ_COMMITTED makes it AC:H; no account needed beyond a held auth code so PR:N; surplus tokens grant resource access (C:H/I:H) but no availability loss (A:N).

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (apache).

CVSS VectorVendor: apache

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
CVSS changed
Oct 15, 2026 - 17:22 NVD
8.1 (HIGH)
Patch available
Oct 09, 2026 - 12:01 EUVD

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

Apache CXF, an open-source framework widely embedded in Java-based API gateways and identity services, contains a HIGH-severity flaw in its JPA-backed OAuth2 authorization code provider that can let a single authorization code be exchanged for multiple valid access tokens. Only the narrow subset of deployments that persist authorization codes to a shared relational database under READ_COMMITTED isolation and expose the token endpoint to remote callers is exposed, but for those organizations the consequence is unauthorized token issuance that could be used to impersonate users or services. Leadership should care because the affected systems are typically authentication infrastructure, meaning a successful attack can undermine the trust boundary protecting downstream applications, even though the exploit is a probabilistic timing race with low observed activity.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Medium
widely used Java services framework, but vulnerable JPA OAuth2 provider is a narrower config
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Medium

Priority Score

20
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +20
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2026-44930 CRITICAL
9.8 May 22

Arbitrary certificate disclosure in Apache CXF's XKMS server lets remote attackers abuse an LDAP injection flaw (CWE-90)

CVE-2026-66909 CRITICAL
9.8 Aug 06

Unsafe deserialization in Apache CXF's JMS transport allows any party able to publish to the service's JMS destination t

CVE-2026-97468 CRITICAL
9.1 Oct 09

Token validation bypass in Apache CXF's STSTokenValidator and Security Token Service (STS) allows unauthenticated remote

CVE-2026-107938 CRITICAL
9.1 Oct 09

Man-in-the-middle attackers can impersonate any TLS server contacted by Apache CXF's optional Netty-based HTTP client tr

CVE-2026-100227 HIGH
7.5 Oct 09

XML signature wrapping in Apache CXF's JAX-RS XML Security module allows remote, unauthenticated attackers to have unsig

CVE-2026-97791 HIGH
7.5 Oct 09

Trust bypass in Apache CXF's STSTokenValidator allows a remote, unauthenticated attacker to have a forged SAML assertion

CVE-2026-78384 HIGH
7.5 Oct 09

A remote, unauthenticated attacker can exhaust server heap memory in Apache CXF by submitting a small (kilobyte-scale) D

CVE-2026-44417 HIGH
7.5 May 22

Remote code execution in Apache CXF (versions before 3.6.11, 4.0.0-4.1.5, and 4.2.0) arises because the fix for CVE-2025

CVE-2026-65432 HIGH
7.5 Aug 06

XML External Entity injection in Apache CXF's WSDL import processing allows attackers who can influence imported WSDL or

CVE-2026-64958 HIGH
7.5 Aug 06

Denial of service persists in Apache CXF due to an incomplete remediation of CVE-2026-50645, allowing unauthenticated ne

CVE-2026-61466 CRITICAL
9.1 Aug 06

Authorization scope escalation in Apache CXF's OAuth2 Dynamic Client Registration endpoint allows any registering client

CVE-2026-79650 MEDIUM
6.1 Oct 09

Open redirect in Apache CXF's OIDC relying-party component lets remote, unauthenticated attackers steer users to an atta

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy