Vulnerabilidad en secp256k1-node (CVE-2024-48930)
Gravedad CVSS v4.0:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
21/10/2024
Última modificación:
21/10/2024
Descripción
secp256k1-node es un enlace de Node.js para una librería C optimizada para operaciones EC en la curva secp256k1. En la versión basada en `elliptic`, `loadUncompressedPublicKey` tiene una comprobación de que la clave pública está en la curva. Sin embargo, antes de las versiones 5.0.1, 4.0.4 y 3.8.1, `loadCompressedPublicKey` no tiene esa comprobación. Eso permite al atacante usar claves públicas en curvas de baja cardinalidad para extraer suficiente información para restaurar completamente la clave privada a partir de tan solo 11 sesiones ECDH, y de manera muy económica en cuanto a potencia de cómputo. Otras operaciones en claves públicas también se ven afectadas, incluyendo, por ejemplo, `publicKeyVerify()` que devuelve incorrectamente `true` en esas claves no válidas, y, por ejemplo, `publicKeyTweakMul()` que también devuelve resultados predecibles que permiten restaurar el ajuste. Las versiones 5.0.1, 4.0.4 y 3.8.1 contienen una solución para el problema.
Impacto
Puntuación base 4.0
8.70
Gravedad 4.0
ALTA
Referencias a soluciones, herramientas e información
- https://github.com/cryptocoinjs/secp256k1-node/blob/6d3474b81d073cc9c8cc8cfadb580c84f8df5248/lib/elliptic.js#L17-L19
- https://github.com/cryptocoinjs/secp256k1-node/blob/6d3474b81d073cc9c8cc8cfadb580c84f8df5248/lib/elliptic.js#L37-L39
- https://github.com/cryptocoinjs/secp256k1-node/commit/8bd6446e000fa59df3cda0ae3e424300747ea5ed
- https://github.com/cryptocoinjs/secp256k1-node/commit/9a15fff274f83a6ec7f675f1121babcc0c42292f
- https://github.com/cryptocoinjs/secp256k1-node/commit/e256905ee649a7caacc251f7c964667195a52221
- https://github.com/cryptocoinjs/secp256k1-node/security/advisories/GHSA-584q-6j8j-r5pm