CVE-2026-89043
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.
Weakness
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.
References
- https://github.com/krakenjs/passport-saml-encrypted
- https://github.com/krakenjs/passport-saml-encrypted/blob/v0.1.13/lib/saml.js#L256
- https://github.com/krakenjs/passport-saml-encrypted/blob/v0.1.13/lib/saml.js#L328
- https://github.com/krakenjs/passport-saml-encrypted/issues/30
- https://www.vulncheck.com/advisories/passport-saml-encrypted-through-0.1.13-xml-signature-wrapping-via-assertion-prepending
- https://github.com/krakenjs/passport-saml-encrypted/issues/30
Find the bug before an attacker does.
Sign in with GitHub and run your first audit in under a minute. The free plan needs no credit card.