LightSAML: Signature wrapping permits unsigned assertion claims
Summary
LightSAML, a PHP library for SAML 2.0, can accept forged SAML assertions whose signature covers a different, genuinely signed element than the one whose claims are read. An attacker who has captured one validly signed assertion, such as an earlier login response, can change Subject/NameID, Conditions and Attributes. This can lead to authentication bypass or privilege escalation even when signature validation is required. Exposure depends on the application that uses the library as a SAML service provider.
Affected
- litesaml/lightsaml before 4.7.1
- litesaml/lightsaml 5.0.0 before 5.0.1
Fixed in
- 4.7.1
- 5.0.1
Workaround
Unknown.
Exploitation
- No in-the-wild exploitation has been reported.
- The vendor confirmed the behaviour in versions 5.0.0 and 4.6.1.
Our recommendation
- Upgrade to 4.7.1 or 5.0.1 or later, via Composer.
- Check with the application owner whether a SAML service provider in your environment uses an affected version.
- Until the update is applied, review the SAML login flow and monitor for unexpected identity or role changes.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-w553-pwx6-3mg9 github.com
- LightSAML release 4.7.1 github.com
- LightSAML release 5.0.1 github.com
- Fix commit for 5.x (PR #113) github.com
- Fix commit for 4.x (PR #122) github.com
- Pull request #113 github.com
- Pull request #122 github.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 17:44.
Original description (NVD)
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.
NVD references (7)
- https://github.com/litesaml/lightsaml/commit/230e62d1325f2cbcaac814b78409775f7a8806a2
- https://github.com/litesaml/lightsaml/commit/3af82bf2f3865e6aafeeb1a97c97b383b8bb7b00
- https://github.com/litesaml/lightsaml/pull/113
- https://github.com/litesaml/lightsaml/pull/122
- https://github.com/litesaml/lightsaml/releases/tag/4.7.1
- https://github.com/litesaml/lightsaml/releases/tag/5.0.1
- https://github.com/litesaml/lightsaml/security/advisories/GHSA-w553-pwx6-3mg9
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
