CVE-2026-63182
LightSAML: Signature reference wrapping permits unsigned assertion claims
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
8.1
LightSAML: Signature reference wrapping permits unsigned assertion claims
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.
- Record
CVE-2026-63182- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-347
- Updated
- 2026-11-06
EUVDEUVD-2026-114520
8.1
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.
- Record
EUVD-2026-114520- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-06
NVD
8.1
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.
- Record
CVE-2026-63182- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-347
- Updated
- 2026-11-06
OSV
8.1
LightSAML: Signature reference wrapping permits unsigned assertion claims
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.
- Record
CVE-2026-63182- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-347
- Updated
- 2026-11-07
Affected products
History
| Recorded | Changed | Sources |
|---|---|---|
| references | CVE List, EUVD | |
| facts | NVD, OSV | |
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-63182 is a high vulnerability (CVSS 8.1) in Litesaml Lightsaml, published October 30, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.19%, the 8th percentile. No source names a fixed version.
References
github.com/litesaml/lightsaml/security/advisories/GHSA-w553-pwx6-3mg9
github.com/litesaml/lightsaml/pull/113
github.com/litesaml/lightsaml/pull/122
github.com/litesaml/lightsaml/commit/230e62d1325f2cbcaac814b78409775f7a8806a2
github.com/litesaml/lightsaml/commit/3af82bf2f3865e6aafeeb1a97c97b383b8bb7b00
github.com/litesaml/lightsaml/releases/tag/4.7.1
github.com/litesaml/lightsaml/releases/tag/5.0.1
github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63182.json
nvd.nist.gov/vuln/detail/CVE-2026-63182