CVE

Vulnerabilidad en Node.js (CVE-2024-32962)

Severidad:
CRÍTICA
Type:
No Disponible / Otro tipo
Fecha de publicación:
02/05/2024
Última modificación:
02/05/2024

Descripción

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 `() => undefinido`, forzando a `xml-crypto` a usar un método explícito configurar `publicCert` o `privateKey` para la verificación de firma.