Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCapture a genuine IdP-signed assertion
-
DeliveryBury signature-stripped bytes in samlp:Extensions
-
ExploitSubmit forged duplicate-ID direct-child assertion
-
ExecutionCopied signature passes required validation
-
ImpactImpersonate user or escalate to admin
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Signature verification
|
| Exploitation Conditions | The attacker must already possess at least one genuinely IdP-signed SAML assertion from the trusted issuer (e.g. a captured earlier login response or their own legitimate low-privilege assertion); without a valid signature to copy, the wrap cannot pass. The target must be a Service Provider using LightSAML prior to 4.7.1 (4.x branch) or 5.0.1 (5.x branch) together with robrichards/xmlseclibs for inbound |
| Impact | This is a genuine high-priority signature-verification flaw (CWE-347) rather than an inflated high-CVSS issue. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N = 8.1) is consistent with the mechanism: an inbound SAML Response is delivered over the network, the XML Signature Wrapping technique is deterministic (xmlseclibs always resolves |
| Exploit ScenarioDerived | An attacker who has captured one genuinely IdP-signed SAML assertion - for example their own earlier legitimate login response - strips its |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
XML signature wrapping in LightSAML (4.x before 4.7.1 and 5.x before 5.0.1) lets an attacker who already holds one genuinely IdP-signed SAML assertion redirect signature validation to a buried copy of that genuine assertion while LightSAML consumes attacker-authored claims from a forged direct-child assertion, yielding authentication bypass and privilege escalation up to full impersonation of arbitrary NameID, Conditions and role attributes. The flaw requires only a low-privilege position (PR:L) - a captured earlier login response or the attacker's own legitimate assertion - and works even when the Service Provider enforces requireSignature=true, since the copied genuine ds:Signature still validates. Fixed in 4.7.1 and 5.0.1; the vendor advisory and a working PoC script are public, and no confirmed active exploitation (CISA KEV) or EPSS signal was provided at time of analysis.
RemediationAI
Upgrade the Composer package litesaml/lightsaml to 5.0.1 (5.x branch) or 4.7.1 (4.x branch) as released by the vendor; both fix tags publish the assertNoXmlSignatureWrapping() check that confirms the ds:Signature parent element carries the referenced ID and that the ID is unique in the document, closing the wrap before xmlseclibs resolves the reference. Details are in advisory GHSA-w553-pwx6-3mg9 and the release notes at https://github.com/litesaml/lightsaml/releases/tag/5.0.1 and https://github.com/litesaml/lightsaml/releases/tag/4.7.1. Because complete remediation in the vendor's assessment requires upgrading to a fixed version, organizations that cannot patch immediately should treat every inbound SAML assertion ID as untrusted and add a pre-validation layer that rejects any samlp:Response containing more than one element with the same ID attribute, and reject any samlp:Extensions content carrying saml:Assertion nodes; the trade-off is that legitimate IdPs which populate Extensions for other extensions (for example IdP-initiated flows or vendor-specific attributes) may break, and the duplicate-ID inspection must itself run on the raw DOM before LightSAML's own deserialization to be effective. Restricting accepted Response shapes at a SAML proxy or WAF that enforces unique IDs and strips Assertion content from Extensions is an alternative compensating control, but it introduces a new parsing component that must be kept in sync with the library.
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
LightSAML is a PHP SAML 2.0 data-model and binding library used to build Service Providers, and it delegates XML signature verification to robrichards/xmlseclibs. The root cause is a CWE-347 (improper verification of cryptographic signature) disagreement between the two layers about which element a signature covers. Response::deserialize uses manyElementsFromXml with the relative XPath saml:Assertion, so it collects only direct children of samlp:Response; AssertionSignatureValidatorAction then validates each collected assertion's ds:Signature against an out-of-band trusted IdP credential resolved by Issuer entityId (never a key taken from the document). Validation calls XMLSecurityDSig::validateReference(), which first removes the enveloped signature node from the shared DOM, and processRefNode() then resolves Reference URI="#id" document-wide with an XPath of the form //*[@Id] and takes item(0) - the first ID-bearing element anywhere in the document, of any name or namespace, not necessarily the assertion LightSAML collected. XML requires IDs to be unique, so the duplicate-ID document that makes the wrap possible is malformed but previously accepted. The fix in PR #113 adds assertNoXmlSignatureWrapping(), executed before validateReference() detaches the signature node, which verifies that the ds:Signature's parent element actually carries the referenced ID and that the ID is unique across the document, rejecting both mismatches and duplicate IDs. Note the issue is separate from a plain XML External Entity or JWT-style confusion attack; the 'Jwt Attack' tag refers to the general signed-token-wrapping class, and the CPE cpe:2.3:a:litesaml:lightsaml:*:*:*:*:*:*:*:* confirms all LightSAML releases are flagged in the CPE range, with Composer data narrowing vulnerable ranges to <=5.0.0 and >=4.0.0 <4.7.1.
Know when Lightsaml 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:L/UI:N/S:U/C:H/I:H/A:N
Network-delivered SAML Response (AV:N); deterministic wrapping with no race (AC:L); attacker needs one captured genuine signed assertion, treated as PR:L; no victim interaction; impersonation gives C:H/I:H, no availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
LightSAML implements SAML 2.0 data model classes, XML serialization and deserialization, XML security, certificate support, and message bindings. Prior to 4.7.1 and 5.0.1, LightSAML and xmlseclibs disagree about which assertion an inbound SAML signature covers. Response::deserialize uses manyElementsFromXml to collect only direct-child saml:Assertion elements of samlp:Response, and AssertionSignatureValidatorAction validates their ds:Signature using an out-of-band trusted IdP credential resolved by Issuer, not a key from the document. XMLSecurityDSig::validateReference() removes the enveloped signature from the shared DOM, but processRefNode() resolves Reference URI="#id" document-wide through an XPath of the form //*[@Id] and takes item(0), which need not be the assertion whose claims LightSAML consumes. An attacker who has captured one genuinely signed assertion, such as an earlier login response, can place its signature-stripped bytes earlier in samlp:Extensions and present a forged direct-child assertion with the same ID and copied genuine signature. Validation then covers the hidden genuine bytes while LightSAML surfaces unsigned attacker-controlled Subject/NameID, Conditions, and Attributes, enabling authentication bypass or privilege escalation even when signature validation is required. The behavior was confirmed in versions 5.0.0 and 4.6.1. This issue is fixed in versions 4.7.1 and 5.0.1.
Technical POC Analysis
CWE-347 (Improper Verification of Cryptographic Signature) - specifically an XML signature wrapping (XSW) defect arising from two layers disagreeing about which element a signature covers.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
LightSAML versions 4.x before 4.7.1 and 5.x before 5.0.1 contain an XML signature wrapping flaw that enables an authenticated attacker to bypass SAML authentication and escalate privileges, potentially impersonating any user or role within federated applications. This affects all service providers using these LightSAML versions for single sign-on, undermining trust in identity federation and risking unauthorized access to sensitive systems and data.
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
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.
EUVD-2026-114520
NVD
CVE.org
EPSS
GitHub
Exploit-DB