PT-2022-23060 · Openzeppelin · Openzeppelin Contracts

Frangio

·

Published

2022-08-14

·

Updated

2026-03-26

·

CVE-2022-35961

CVSS v3.1

7.9

High

VectorAV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:L
Name of the Vulnerable Software and Affected Versions OpenZeppelin Contracts versions prior to 4.7.3
Description The functions ECDSA.recover and ECDSA.tryRecover are vulnerable to signature malleability due to accepting EIP-2098 compact signatures in addition to the traditional 65 byte signature format. This issue affects contracts 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 submit a previously used signature in a different form, bypassing this protection.
Recommendations For versions prior to 4.7.3, update to version 4.7.3 to resolve the issue. As a temporary workaround, consider modifying the contracts to implement signature reuse or replay protection by marking the signed message or a nonce included in it as used, rather than the signature itself. Restrict access to the ECDSA.recover and ECDSA.tryRecover functions to minimize the risk of exploitation.

Exploit

Fix

Improper Verification of Cryptographic Signature

Weakness Enumeration

Related Identifiers

CVE-2022-35961
GHSA-4H98-2769-GH6H
GHSA-Q67F-28XG-22RW

Affected Products

Openzeppelin Contracts