// For flags

CVE-2024-32962

XML signature verification bypass due improper verification of signature / signature spoofing

Severity Score

10.0
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Attend
*SSVC
Descriptions

xml-crypto is an xml digital signature and encryption library for Node.js. In affected versions the default configuration does not check authorization of the signer, it only checks the validity of the signature per section 3.2.2 of the w3 xmldsig-core-20080610 spec. As such, without additional validation steps, the default configuration allows a malicious actor to re-sign an XML document, place the certificate in a `<KeyInfo />` element, and pass `xml-crypto` default validation checks. As a result `xml-crypto` trusts by default any certificate provided via digitally signed XML document's `<KeyInfo />`. `xml-crypto` prefers to use any certificate provided via digitally signed XML document's `<KeyInfo />` even if library was configured to use specific certificate (`publicCert`) for signature verification purposes. An attacker can spoof signature verification by modifying XML document and replacing existing signature with signature generated with malicious private key (created by attacker) and by attaching that private key's certificate to `<KeyInfo />` element. This vulnerability is combination of changes introduced to `4.0.0` on pull request 301 / commit `c2b83f98` and has been addressed in version 6.0.0 with pull request 445 / commit `21201723d`. Users are advised to upgrade. Users unable to upgrade may either check the certificate extracted via `getCertFromKeyInfo` against trusted certificates before accepting the results of the validation or set `xml-crypto's getCertFromKeyInfo` to `() => undefined` forcing `xml-crypto` to use an explicitly configured `publicCert` or `privateKey` for signature verification.

xml-crypto es una librería de cifrado y firma digital xml para Node.js. En las versiones afectadas, la configuración predeterminada no verifica la autorización del firmante, solo verifica la validez de la firma según la sección 3.2.2 de la especificación w3 xmldsig-core-20080610. Como tal, sin pasos de validación adicionales, la configuración predeterminada permite a un actor malintencionado volver a firmar un documento XML, colocar el certificado en un elemento `` y pasar las comprobaciones de validación predeterminadas `xml-crypto`. Como resultado, `xml-crypto` confía de forma predeterminada en cualquier certificado proporcionado a través de `` del documento XML firmado digitalmente. `xml-crypto` prefiere usar cualquier certificado proporcionado a través de `` del documento XML firmado digitalmente, incluso si la librería se configuró para usar un certificado específico (`publicCert`) para fines de verificación de firma. Un atacante puede falsificar la verificación de la firma modificando el documento XML y reemplazando la firma existente con una firma generada con una clave privada maliciosa (creada por el atacante) y adjuntando el certificado de esa clave privada al elemento ``. Esta vulnerabilidad es una combinación de cambios introducidos en `4.0.0` en la solicitud de extracción 301/compromiso `c2b83f98` y se ha solucionado en la versión 6.0.0 con la solicitud de extracción 445/compromiso `21201723d`. Se recomienda a los usuarios que actualicen. Los usuarios que no puedan actualizar pueden verificar el certificado extraído a través de `getCertFromKeyInfo` con certificados confiables antes de aceptar los resultados de la validación o configurar `xml-crypto's getCertFromKeyInfo` en `() =&gt; undefinido`, forzando a `xml-crypto` a usar un método explícito configurar `publicCert` o `privateKey` para la verificación de firma.

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None
Attack Vector
Network
Attack Complexity
Low
Authentication
None
Confidentiality
Complete
Integrity
Complete
Availability
None
* Common Vulnerability Scoring System
SSVC
  • Decision:Attend
Exploitation
Poc
Automatable
Yes
Tech. Impact
Total
* Organization's Worst-case Scenario
Timeline
  • 2024-04-22 CVE Reserved
  • 2024-05-02 CVE Published
  • 2024-05-02 EPSS Updated
  • 2025-02-13 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-347: Improper Verification of Cryptographic Signature
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Node-saml
Search vendor "Node-saml"
Xml-crypto
Search vendor "Node-saml" for product "Xml-crypto"
>= 4.0.0 < 6.0.0
Search vendor "Node-saml" for product "Xml-crypto" and version " >= 4.0.0 < 6.0.0"
en
Affected