---
id: CVE-2026-63182
title: 'LightSAML: Signature reference wrapping permits unsigned assertion claims'
summary: >-
  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 inboun…
severity: high
cvss: 8.1
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N'
cvssSource: cna
cwe:
  - CWE-347
vendor: litesaml
product: lightsaml
affected:
  - lightsaml < 4.7.1
  - 'lightsaml >= 5.0.0, < 5.0.1'
ssvc:
  exploitation: poc
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-11-06T18:26:30.962748Z'
exploitAvailable: true
published: '2026-10-30'
updated: '2026-11-06'
sourceUpdated: '2026-11-06T18:28:30.793Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-63182'
references:
  - url: >-
      https://github.com/litesaml/lightsaml/security/advisories/GHSA-w553-pwx6-3mg9
    label: >-
      https://github.com/litesaml/lightsaml/security/advisories/GHSA-w553-pwx6-3mg9
  - url: 'https://github.com/litesaml/lightsaml/pull/113'
    label: 'https://github.com/litesaml/lightsaml/pull/113'
  - url: 'https://github.com/litesaml/lightsaml/pull/122'
    label: 'https://github.com/litesaml/lightsaml/pull/122'
  - url: >-
      https://github.com/litesaml/lightsaml/commit/230e62d1325f2cbcaac814b78409775f7a8806a2
    label: >-
      https://github.com/litesaml/lightsaml/commit/230e62d1325f2cbcaac814b78409775f7a8806a2
  - url: >-
      https://github.com/litesaml/lightsaml/commit/3af82bf2f3865e6aafeeb1a97c97b383b8bb7b00
    label: >-
      https://github.com/litesaml/lightsaml/commit/3af82bf2f3865e6aafeeb1a97c97b383b8bb7b00
  - url: 'https://github.com/litesaml/lightsaml/releases/tag/4.7.1'
    label: 'https://github.com/litesaml/lightsaml/releases/tag/4.7.1'
  - url: 'https://github.com/litesaml/lightsaml/releases/tag/5.0.1'
    label: 'https://github.com/litesaml/lightsaml/releases/tag/5.0.1'
tags:
  - cve.org
  - exploit-available
epss: 0.00191
epssPercentile: 0.08761
ingestedAt: '2026-11-05T16:24:31.467Z'
---

## Overview

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

- `lightsaml < 4.7.1`
- `lightsaml >= 5.0.0, < 5.0.1`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
