CVE-2022-35961
August 14, 2022
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.
Affected Packages
@openzeppelin/contracts-upgradeable (NPM):
Affected version(s) >=4.1.0 <4.7.3Fix Suggestion:
Update to version 4.7.3@openzeppelin/contracts (NPM):
Affected version(s) >=4.1.0 <4.7.3Fix Suggestion:
Update to version 4.7.3Related Resources (7)
Do you need more information?
Contact UsCVSS v4
Base Score:
8.8
Attack Vector
NETWORK
Attack Complexity
HIGH
Attack Requirements
NONE
Privileges Required
LOW
User Interaction
PASSIVE
Vulnerable System Confidentiality
HIGH
Vulnerable System Integrity
HIGH
Vulnerable System Availability
LOW
Subsequent System Confidentiality
HIGH
Subsequent System Integrity
HIGH
Subsequent System Availability
LOW
CVSS v3
Base Score:
7.9
Attack Vector
NETWORK
Attack Complexity
HIGH
Privileges Required
LOW
User Interaction
REQUIRED
Scope
CHANGED
Confidentiality
HIGH
Integrity
HIGH
Availability
LOW
Weakness Type (CWE)
Improper Validation of Integrity Check Value
EPSS
Base Score:
0.16