CVE-2026-63182
Description
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.
Affected products
1Patches
Vulnerability mechanics
References
7- github.com/litesaml/lightsaml/commit/230e62d1325f2cbcaac814b78409775f7a8806a2nvd
- github.com/litesaml/lightsaml/commit/3af82bf2f3865e6aafeeb1a97c97b383b8bb7b00nvd
- github.com/litesaml/lightsaml/pull/113nvd
- github.com/litesaml/lightsaml/pull/122nvd
- github.com/litesaml/lightsaml/releases/tag/4.7.1nvd
- github.com/litesaml/lightsaml/releases/tag/5.0.1nvd
- github.com/litesaml/lightsaml/security/advisories/GHSA-w553-pwx6-3mg9nvd
News mentions
0No linked articles in our index yet.