passport-saml-encrypted through 0.1.13 contains an XML signature wrapping vulnerability where signature verification and assertion extraction use independent XPath lookups with no cross-validation. Attackers holding any validly signed SAML message can prepend a forged unsigned assertion that gets accepted as the verified identity while the genuine signature validates against the original assertion.
https://github.com/krakenjs/passport-saml-encrypted/issues/30
https://github.com/krakenjs/passport-saml-encrypted/blob/v0.1.13/lib/saml.js#L328
https://github.com/krakenjs/passport-saml-encrypted/blob/v0.1.13/lib/saml.js#L256
Published: 2026-09-10
Updated: 2026-09-10
Base Score: 7.1
Vector: CVSS2#AV:N/AC:H/Au:N/C:C/I:C/A:N
Severity: High
Base Score: 7.4
Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Severity: High
Base Score: 9.1
Vector: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Severity: Critical