{"id":"CVE-2026-63182","kind":"vulnerability","aliases":["CVE-2026-63182"],"related":[],"title":"LightSAML: forged SAML assertion bypasses signature check, enabling login as others","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.","summary":"LightSAML, a PHP library for SAML 2.0 single sign-on, can accept a forged assertion whose signature check covers a different, genuinely signed copy hidden in the same message. An attacker who has captured one signed login response can use this to surface unsigned identity claims such as NameID and attributes, enabling authentication bypass or privilege escalation.","severity":"high","cvss":8.1,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["composer","lightsaml","package","php","saml-sso"],"not_affected_if":["no-saml-login","other-library"],"how_to_check":"- Check the installed LightSAML version with `composer show lightsaml/lightsaml` and compare it to the fixed versions below.\n- Check whether the project pins `robrichards/xmlseclibs` and whether the SAML response handling code calls LightSAML's `Response::deserialize`.","fix":"- LightSAML `4.7.1`\n- LightSAML `5.0.1`","status":"open","published_at":"2026-10-30T22:16:58+00:00","first_seen_at":"2026-10-30T22:25:57+00:00","triaged_at":"2026-10-30T22:27:06+00:00","updated_at":"2026-10-30T22:27:06+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-30T22:27:06Z","model":"claude-haiku-5-5","output":{"fix":"- LightSAML `4.7.1`\n- LightSAML `5.0.1`","reach":"network","title":"LightSAML: forged SAML assertion bypasses signature check, enabling login as others","impact":"high","summary":"LightSAML, a PHP library for SAML 2.0 single sign-on, can accept a forged assertion whose signature check covers a different, genuinely signed copy hidden in the same message. An attacker who has captured one signed login response can use this to surface unsigned identity claims such as NameID and attributes, enabling authentication bypass or privilege escalation.","audience":"developers","category":"package","nicknames":[],"who_cares":["php","lightsaml","saml-sso","composer"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"attacker logs in as another user or gains elevated privileges","analyst_note":"","how_to_check":"- Check the installed LightSAML version with `composer show lightsaml/lightsaml` and compare it to the fixed versions below.\n- Check whether the project pins `robrichards/xmlseclibs` and whether the SAML response handling code calls LightSAML's `Response::deserialize`.","plain_action":"","needs_analyst":false,"not_affected_if":["no-saml-login","other-library"],"who_is_affected":"Applications that use LightSAML to accept SAML single sign-on responses from an identity provider are exposed, since the flaw is in how the library validates inbound assertions. Versions 5.0.0 and 4.6.1 were confirmed affected, and the sources say the fix is in 4.7.1 and 5.0.1. Applications that do not use LightSAML for SAML login, or that use it only to generate SAML requests, are unlikely to be exposed; the sources do not say whether signature validation being required changes the result beyond the described case.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000789,"input_tokens":4563,"output_tokens":665,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-63182':14A,17A '0':187C '2.0':31B,86C '4.6.1':278C '4.7.1':103C,285C '5.0.0':276C '5.0.1':105C,287C 'accept':37B 'assert':4A,40B,112C,129C,193C,206C,231C 'assertionsignaturevalidatoract':135C 'attack':56B,199C,252C 'attacker-control':251C 'attribut':76B,257C 'authent':78B,259C 'band':145C 'behavior':271C 'bind':100C 'bypass':5A,79B,260C 'byte':219C,246C 'captur':59B,202C 'certif':96C 'check':7A,43B 'child':127C,230C 'claim':71B,195C 'class':89C 'collect':123C 'compos':18B 'condit':255C 'confirm':273C 'consum':197C 'control':253C 'copi':49B,237C 'cover':44B,117C,242C 'credenti':148C 'cve':12A,15A 'data':87C 'deseri':93C,119C 'differ':46B 'direct':126C,229C 'direct-child':125C,228C 'disagre':109C 'document':157C,175C 'document-wid':174C 'dom':167C 'ds':138C 'earlier':210C,220C 'element':130C 'enabl':8A,77B,258C 'envelop':162C 'escal':82B,263C 'even':264C 'extens':223C 'fix':282C 'forg':2A,39B,227C 'form':182C 'genuin':47B,204C,238C,245C 'hidden':50B,244C 'id':173C,183C,235C 'ident':70B 'idp':147C 'implement':84C 'inbound':114C 'issu':280C 'issuer':151C 'item':186C 'key':154C 'librari':28B 'lightsaml':1A,19B,25B,83C,106C,196C,248C 'login':9A,62B,211C 'manyelementsfromxml':121C 'messag':54B,99C 'model':88C 'nameid':74B 'need':189C 'one':60B,203C 'other':11A 'out-of-band':142C 'packag':20B 'php':21B,27B 'place':214C 'present':225C 'prior':101C 'privileg':81B,262C 'processrefnod':169C 'refer':171C 'remov':160C 'requir':269C 'resolv':149C,170C 'respons':63B,118C,133C,212C 'saml':3A,23B,30B,85C,115C,128C 'saml-sso':22B 'samlp':132C,222C 'secur':95C 'serial':91C 'share':166C 'sign':34B,48B,61B,205C 'sign-on':33B 'signatur':6A,42B,116C,139C,163C,217C,239C,266C 'signature-strip':216C 'singl':32B 'sso':24B 'strip':218C 'subject/nameid':254C 'support':97C 'surfac':68B,249C 'take':185C 'trust':146C 'unsign':69B,250C 'uri':172C 'use':65B,120C,140C 'valid':136C,240C,267C 'validaterefer':159C 'version':275C,284C 'whose':41B,194C 'wide':176C 'xml':90C,94C 'xmlseclib':108C 'xmlsecuritydsig':158C 'xpath':179C","nicknames":[],"mitigations":[],"who_affected":"Applications that use LightSAML to accept SAML single sign-on responses from an identity provider are exposed, since the flaw is in how the library validates inbound assertions. Versions 5.0.0 and 4.6.1 were confirmed affected, and the sources say the fix is in 4.7.1 and 5.0.1. Applications that do not use LightSAML for SAML login, or that use it only to generate SAML requests, are unlikely to be exposed; the sources do not say whether signature validation being required changes the result beyond the described case.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"first_public_at":"2026-10-30T22:16:58+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-63182","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-63182","severity":null,"published_at":"2026-10-30T22:16:58+00:00","modified_at":"2026-10-30T22:16:58+00:00","first_seen_at":"2026-10-30T22:25:57+00:00","fetched_at":"2026-10-30T22:25:57+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}