CVE-2022-35961
ECDSA signature malleability in OpenZeppelin Contracts
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
0Exploited in Wild
-Decision
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.
CVSS Scores
SSVC
- Decision:-
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
References (3)
URL | Tag | Source |
---|---|---|
https://github.com/OpenZeppelin/openzeppelin-contracts/releases/tag/v4.7.3 | Release Notes | |
https://github.com/OpenZeppelin/openzeppelin-contracts/security/advisories/GHSA-4h98-2769-gh6h | Third Party Advisory |
URL | Date | SRC |
---|
URL | Date | SRC |
---|---|---|
https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3610 | 2022-12-06 |
URL | Date | SRC |
---|
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
|