Signature bypass via multiple root elements
Impact
A remote attacker may be able to bypass SAML authentication on a website using passport-saml. A successful attack requires that the attacker is in possession of an arbitrary IDP signed XML element. Depending on the IDP used, fully unauthenticated attacks (e.g without access to a valid user) might also be feasible if generation of a signed message can be triggered.
Patches
Users should upgrade to passport-saml 3.2.2 or newer. The issue was also present in the beta releases of node-saml before v4.0.0-beta.5.
Workarounds
Disable SAML authentication.
References
Are there any links users can visit to find out more?
For more information
If you have any questions or comments about this advisory:
- Open a discussion in the node-saml repo
Credits
- Felix Wilhelm of Google Project Zero
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| npm package | node-saml | < 4.0.0-beta.5 | 4.0.0-beta.5 |
| npm package | @node-saml/node-saml | < 4.0.0-beta.5 | 4.0.0-beta.5 |
| npm package | @node-saml/passport-saml | < 4.0.0-beta.3 | 4.0.0-beta.3 |
| npm package | passport-saml | < 3.2.2 | 3.2.2 |
References
- https://github.com/node-saml/passport-saml/security/advisories/GHSA-m974-647v-whv7
- https://nvd.nist.gov/vuln/detail/CVE-2022-39299
- https://github.com/node-saml/passport-saml/commit/8b7e3f5a91c8e5ac7e890a0c90bc7491ce33155e
- https://github.com/node-saml/passport-saml
- https://github.com/node-saml/passport-saml/releases/tag/v3.2.2
- http://packetstormsecurity.com/files/169826/Node-saml-Root-Element-Signature-Bypass.html
- CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H- Weakness (CWE)
CWE-347- Platform
- npm
- Package
node-saml, @node-saml/node-saml, @node-saml/passport-saml- Disclosed
- 12.10.2022
- Updated
- 11.10.2026 10:22
Sources and licenses
OSV / GitHub Advisory Database - GHSA-m974-647v-whv7 - CC BY 4.0
Vulnerability history: passport-saml
All published vulnerabilities of this package (npm package), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 3
- First → latest
- 08.2021 07.2025
- Without a fix
- 1
- Exploited in attacks
- 0
Severity breakdown
- Critical 1
- High 1
- Medium 1
Disclosures per year
- 2021: 1
- 2022: 1
- 2023: 0
- 2024: 0
- 2025: 1
- 2026: 0
-
Signature bypass via multiple root elements this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.