Skip to content
Fencer Intel
high 7.5

CVE-2026-97791 json

Apache CXF: STSTokenValidator can accept untrusted SAML assertions because it shares validation state between requests

published last mo. modified 22d ago also EUVD-2026-95700

cvss
7.5
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.3%
EPSS 0.3% chance of exploitation in 30 days, percentile 23%
public exploits
0
none known

Summary

In Apache CXF, STSTokenValidator checks whether a SAML assertion is signed by a trusted certificate before deciding to send it to the STS. That result was stored in one object shared by all requests, so one request could read another's result. A remote, unauthenticated attacker could send a forged assertion signed with an untrusted certificate while legitimate requests were being processed, and it could be accepted as trusted without ever reaching the STS. Only services that use STSTokenValidator to validate SAML tokens without alwaysValidateToSts set are affected.  Users are recommended to upgrade to versions 4.2.4 or 4.1.9 or 3.6.13, which fix this issue.

Patch / fix

  • maven org.apache.cxf:cxf-rt-ws-security 3.6.13, 4.1.9, 4.2.4
  • Apache Software Foundation Apache CXF 3.6.13, 4.1.9, 4.2.4

Is CVE-2026-97791 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.

Check with Fencer

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2026-97791 updated cvss 7.4

org.apache.cxf/cxf-rt-ws-security: Apache CXF: Authentication bypass via shared token validation state

  • Red Hat build of Apache Camel 4 for Quarkus 3 cxf-rt-ws-security 4.1.7.rhbac-redhat-00003 Red Hat build of Apache Camel for Spring Boot 4 cxf-rt-ws-security 4.1.7.rhbac-redhat-00003
    affected: workaround, no fix available
  • Red Hat JBoss Enterprise Application Platform 7 cxf-rt-ws-security 4.1.7.rhbac-redhat-00003, jboss-eap-7/eap74-els-openjdk8-openshift-rhel8, jboss-eap-7/eap74-els-openjdk11-openshift-rhel8, jboss-eap-7/eap74-els-openjdk17-openshift-rhel8
    affected: workaround, no fix available, no fix planned “Will not fix”
  • Red Hat JBoss Enterprise Application Platform 8 cxf-rt-ws-security 4.1.7.rhbac-redhat-00003
    affected: workaround, no fix available
  • Red Hat Single Sign-On 7 cxf-rt-ws-security 4.1.7.rhbac-redhat-00003
    affected: workaround, no fix planned “Will not fix”
  • Red Hat Build of Apache Camel 3.33.4.SP3 cxf-rt-ws-security 4.1.9.rhbac-redhat-00001
    fixed: vendor fix RHSA-2026:95622
  • Red Hat Build of Apache Camel 3.33.4.SP3 jimfs 1.1, jna 5.8.0, bcel 6.7.0, gax 2.74.1, icu4j 78.2, joni 2.2.6, +1616 more
    not affected: vulnerable code not present
  • Red Hat Fuse 7 cxf-rt-ws-security 4.1.7.rhbac-redhat-00003
    not affected: vulnerable code not in execute path
  • Red Hat JBoss Enterprise Application Platform Expansion Pack cxf-rt-ws-security 4.1.7.rhbac-redhat-00003
    not affected: component not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
none
Automatable
yes
Technical impact
partial
Assessed
27d ago

Exploit prediction

0.31% chance of exploitation in the next 30 days, higher than 23% of all scored CVEs (FIRST EPSS, 2026-11-11).

CVSS scores

assigned by version score vector
CISA ADP 3.1 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CNA 3.1 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Affected packages

ecosystem package affected fixed in
maven org.apache.cxf:cxf-rt-ws-security
>=4.2.0, <4.2.4
>=4.0.0, <4.1.9
<3.6.13
4.2.4
4.1.9
3.6.13

Affected products

  • Apache Software Foundation Apache CXF

Classification

Weakness
  • CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization

References

Sources

Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.

CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.