Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en las funciones "ECDSA.recover" y "ECDSA.tryRecover" en OpenZeppelin Contracts (CVE-2022-35961)

Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
15/08/2022
Última modificación:
06/12/2022

Descripción

OpenZeppelin Contracts es una biblioteca para el desarrollo de contratos inteligentes seguros. Las funciones "ECDSA.recover" y "ECDSA.tryRecover" son vulnerables a un tipo de maleabilidad de la firma debido a que aceptan firmas compactas EIP-2098 además del formato de firma tradicional de 65 bytes. Esto sólo es un problema para las funciones que toman un único argumento "bytes", y no las funciones que toman "r, v, s" o "r, vs" como argumentos separados. Los contratos potencialmente afectados son los que implementan el reúso de la firma o la protección contra repeticiones al marcar la propia firma como usada en lugar del mensaje firmado o un nonce incluido en él. Un usuario puede tomar una firma que ya ha sido enviada, enviarla de nuevo en una forma diferente, y omitir esta protección. El problema ha sido parcheado en versión 4.7.3.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:openzeppelin:contracts:*:*:*:*:*:node.js:*:* 4.1.0 (incluyendo) 4.7.3 (excluyendo)
cpe:2.3:a:openzeppelin:contracts_upgradeable:*:*:*:*:*:node.js:*:* 4.1.0 (incluyendo) 4.7.3 (excluyendo)