// For flags

CVE-2022-35961

ECDSA signature malleability in OpenZeppelin Contracts

Severity Score

6.5
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

-
*SSVC
Descriptions

OpenZeppelin Contracts is a library for secure smart contract development. The functions `ECDSA.recover` and `ECDSA.tryRecover` are vulnerable to a kind of signature malleability due to accepting EIP-2098 compact signatures in addition to the traditional 65 byte signature format. This is only an issue for the functions that take a single `bytes` argument, and not the functions that take `r, v, s` or `r, vs` as separate arguments. The potentially affected contracts are those that implement signature reuse or replay protection by marking the signature itself as used rather than the signed message or a nonce included in it. A user may take a signature that has already been submitted, submit it again in a different form, and bypass this protection. The issue has been patched in 4.7.3.

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.

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None
Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
Low
Attack Vector
Network
Attack Complexity
Low
Authentication
Single
Confidentiality
None
Integrity
Complete
Availability
None
* Common Vulnerability Scoring System
SSVC
  • Decision:-
Exploitation
-
Automatable
-
Tech. Impact
-
* Organization's Worst-case Scenario
Timeline
  • 2022-07-15 CVE Reserved
  • 2022-08-14 CVE Published
  • 2024-03-06 EPSS Updated
  • 2024-08-03 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-354: Improper Validation of Integrity Check Value
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Openzeppelin
Search vendor "Openzeppelin"
Contracts
Search vendor "Openzeppelin" for product "Contracts"
>= 4.1.0 < 4.7.3
Search vendor "Openzeppelin" for product "Contracts" and version " >= 4.1.0 < 4.7.3"
node.js
Affected
Openzeppelin
Search vendor "Openzeppelin"
Contracts Upgradeable
Search vendor "Openzeppelin" for product "Contracts Upgradeable"
>= 4.1.0 < 4.7.3
Search vendor "Openzeppelin" for product "Contracts Upgradeable" and version " >= 4.1.0 < 4.7.3"
node.js
Affected