GHSA-877v-57rx-34hv
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach SOAP endpoint using streaming StAX WSS4J
-
DeliveryCraft message with STR-Transform signature reference
-
ExploitSet persistent 'inside signed content' flag
-
ExecutionPolicy enforcer skips SignedParts/SignedElements checks
-
PersistSubmit unsigned/wrapped SOAP Body
-
ImpactMalicious Body accepted as authenticated integrity bypass
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Protection mechanism completeness
|
| Exploitation Conditions | Exploitation requires the target to use the WSS4J streaming (StAX) processing path - the DOM-based code is explicitly NOT affected - and to enforce a WS-SecurityPolicy that requires the SOAP Body (or specific SignedParts/SignedElements) to be signed; otherwise there is no protection to bypass. The trigger is a message containing a signature reference that uses the WS-Security STR-Transform, which permanently sets the internal 'inside signed content' flag and causes the policy enforcer to stop evaluating subsequent SignedParts/SignedElements. Given those preconditions, exploitation is remote and unauthenticated (AV:N/PR:N/UI:N) with low complexity; the main limiting factors are the required streaming code path, the policy that mandates a signed Body, and use of an affected version (<2.4.4, 4.0.0-4.0.1, 3.0.0-3.0.5). |
| Impact | This is a genuine, well-characterized integrity vulnerability rather than a hype-driven high-CVSS finding, but its real-world reach is gated by specific deployment conditions. The vendor CVSS of 7.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N) is internally consistent: the flaw is remotely reachable by an unauthenticated attacker who can send a SOAP message, requires no user interaction, and produces a pure integrity impact (C:N/I:H/A:N) by defeating WS-SecurityPolicy enforcement of SignedParts/SignedElements - a classic XML Signature Wrapping bypass. No EPSS score, KEV listing, or public POC was provided, so exploitation status is 'no public exploit identified at time of analysis'; the signal set therefore points to a credible but not-yet-actively-exploited defensive-control failure. CWE-693 (Protection Mechanism Failure) accurately frames the issue: signature verification itself still works, but the policy enforcer is tricked into believing an unsigned Body is signed. The most important caveat is that the CVSS PR:N/AC:L combination understates real preconditions - the target must use the WSS4J streaming (StAX) code path (the DOM path is unaffected) AND enforce a policy requiring the Body to be signed, and the message must legitimately include an STR-Transform signature reference to set the sticky flag. Note also the input Tag 'Information Disclosure' conflicts with the CVSS vector (C:N, I:H): this is an integrity/signature-wrapping issue, not a confidentiality/disclosure issue, and that tag should be corrected. |
| Exploit ScenarioDerived | An attacker intercepts or crafts a SOAP request to a service that uses WSS4J's streaming StAX processor and enforces a policy requiring the SOAP Body to be signed. By including a signature reference that uses the WS-Security STR-Transform (which permanently sets the internal 'inside signed content' flag), the attacker causes the policy enforcer to stop checking SignedParts/SignedElements, then submits or wraps an unsigned/attacker-controlled Body that is accepted as if properly signed. No authentication, user interaction, or public exploit code is required, though the target must run the affected streaming code path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Sep 30, 2026
XML Signature Wrapping protections in Apache WSS4J's streaming (StAX) code path can be bypassed, allowing a remote unauthenticated attacker to deliver a SOAP message whose Body is unsigned yet still satisfies a WS-SecurityPolicy requiring the Body to be signed. The root cause is that a signature reference using the WS-Security STR-Transform permanently sets an internal 'inside signed content' flag, which causes the WS-SecurityPolicy enforcer to stop evaluating SignedParts and SignedElements for the remainder of the message; signature verification itself is not broken, and the DOM-based code is unaffected. Only deployments on the streaming path that enforce such a policy are exposed: affected versions are below 2.4.4, 3.0.0 through 3.0.5, and 4.0.0 through 4.0.1, and no public exploit code or confirmed active exploitation was identified at time of analysis. Vendor-released patches are available as 4.0.2, 3.0.6, and 2.4.4.
Earlier versions of this analysis (1)
XML Signature Wrapping protection can be bypassed by unauthenticated remote attackers in Apache WSS4J's streaming (StAX) module (org.apache.wss4j:wss4j-ws-security-stax) because a signature reference using the WS-Security STR-Transform permanently sets an internal 'inside signed content' flag, causing the WS-SecurityPolicy enforcer to skip SignedParts and SignedElements evaluation for the rest of the message. This allows a policy requiring the SOAP Body to be signed to be satisfied even when the Body is unsigned, undermining message integrity. Affected versions are 4.0.0 before 4.0.2, 3.0.0 before 3.0.6, and before 2.4.4; the DOM processor is not affected. No public exploit code or confirmed active exploitation has been identified at time of analysis, and the vendor rates the issue as moderate (assessed CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N).
RemediationAI
Upgrade to a fixed release: Apache WSS4J 4.0.2 (for the 4.0.x line, fixing 4.0.0-4.0.1), 3.0.6 (for the 3.0.x line, fixing 3.0.0-3.0.5), or 2.4.4 (for the 2.4.x line, fixing all versions below 2.4.4); vendor-released patches for all three lines are available, and the upgrade is the only complete fix since the defect is in library-internal policy-enforcement state that applications cannot correct from the outside. Where an immediate upgrade is not possible, the most effective compensating control is to move the affected service to WSS4J's DOM-based processing path instead of the streaming (StAX) path - the trade-off is that DOM processing is generally more memory-intensive for large messages and may change streaming/performance characteristics of the endpoint. Because signature verification is unaffected, log- and gateway-level inspection of XML for multiple ds:Signature elements or unexpected wsse:SecurityTokenReference/STR-Transform references can flag attempted wrapping, but this is detection rather than prevention and cannot replace the patch; disabling the WS-SecurityPolicy enforcement entirely is not an acceptable mitigation because it removes the signed-Body requirement the attacker is already bypassing. Consult the Apache WSS4J advisory at https://ws.apache.org/ and the oss-security thread (http://www.openwall.com/lists/oss-security/2026/09/30/12) for the authoritative fix guidance.
Affected VersionsENISA
Affected Packages
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 WSS4J implements WS-Security for SOAP web services, including XML Signature verification and WS-SecurityPolicy enforcement. This finding is a protection-mechanism failure (CWE-693): the streaming StAX parser maintains an internal Boolean flag indicating whether the parser is currently 'inside signed content', and this flag is set when processing a signature reference that uses the WS-Security STR-Transform (a transform that dereferences a wsse:SecurityTokenReference). In the streaming code the flag is never reset, so once such a reference is encountered, the WS-SecurityPolicy enforcer treats every subsequent element as already covered and skips its SignedParts and SignedElements checks. Because an attacker-controlled SOAP Body can then be accepted without a valid Body signature, the classic XML Signature Wrapping defense - ensuring the signed element is the element actually consumed by the application - is nullified. Cryptographic signature verification continues to work correctly; the failure is in policy enforcement ordering/state, not in signature math. The DOM-based code path tracks this state differently and is explicitly not affected, and there is no evidence of a comparable flaw outside the streaming path.
Know when Wss4J 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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Remote unauthenticated attacker sends a SOAP message with no user interaction (AV:N/AC:L/PR:N/UI:N); impact is a signature-enforcement bypass affecting integrity only (I:H, C:N/A:N).
Primary rating from Vendor (CNA).
CVSS VectorVendor
Lifecycle Timeline
3Description PRE-NVD
Executive ViewAI
Apache WSS4J, a WS-Security library embedded in many SOAP-based integration stacks, can be induced to accept a SOAP message whose Body is unsigned even when policy explicitly requires a signature, undermining the message-integrity guarantees that partner-facing and internal service-to-service flows depend on. Exposure is limited to deployments that use the streaming (StAX) processing path and enforce a WS-SecurityPolicy requiring signed Body content; the DOM-based path is unaffected. No public exploit code has been identified at time of analysis and vendor patches are available, so this is a contained but time-sensitive remediation item for teams running regulated or B2B SOAP integrations.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Unauthenticated remote attackers can bypass authentication in Apache WSS4J (4.0.0 before 4.0.2, 3.0.0 before 3.0.6, and
WS-Security policy bypass in Apache WSS4J (4.0.0 <4.0.2, 3.0.0 <3.0.6, and 0 <2.4.4) allows an unauthenticated remote at
Apache WSS4J before 1.6.17 and 2.0.x before 2.0.2 improperly leaks information about decryption failures when decrypting
Apache WSS4J before 1.6.17 and 2.x before 2.0.2 allows remote attackers to bypass the requireSignedEncryptedDataElements
Denial of service in Apache WSS4J (2.x before 2.4.4, 3.x before 3.0.6, and 4.x before 4.0.2) allows unauthenticated remo
Unauthenticated denial of service in Apache WSS4J lets remote attackers exhaust server memory by sending SOAP messages t
Apache WSS4J before 1.6.17 and 2.x before 2.0.2, as used in Apache CXF 2.7.x before 2.7.13 and 3.0.x before 3.0.2, when
UsernameToken replay protection in Apache WSS4J can be bypassed by re-encoding the Nonce, allowing a captured authentica
Apache WSS4J versions 4.0.0 through 4.0.1, 3.0.0 through 3.0.5, and all 2.x releases before 2.4.4 can accept SOAP messag
EUVD-2026-89795
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB