Miggo Logo

CVE-2022-35961: OpenZeppelin Contracts vulnerable to ECDSA signature malleability

7.9

CVSS Score
3.1

Basic Information

EPSS Score
0.02739%
Published
8/18/2022
Updated
2/2/2023
KEV Status
No
Technology
TechnologyJavaScript

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:L
Package NameEcosystemVulnerable VersionsFirst Patched Version
@openzeppelin/contractsnpm>= 4.1.0, < 4.7.34.7.3
@openzeppelin/contracts-upgradeablenpm>= 4.1.0, < 4.7.34.7.3

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability documentation explicitly identifies these two functions as accepting both traditional 65-byte signatures and EIP-2098 compact 64-byte signatures. The commit diff shows removal of code handling 64-byte signatures in tryRecover(bytes32,bytes), and CHANGELOG notes these specific functions were modified to prevent compact signature acceptance. Tests were updated to reject compact signatures, confirming the attack vector was through these function variants.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

### Imp**t T** *un*tions `***S*.r**ov*r` *n* `***S*.tryR**ov*r` *r* vuln*r**l* to * kin* o* si*n*tur* m*ll***ility *u* to ****ptin* *IP-**** *omp**t si*n*tur*s in ***ition to t** tr**ition*l ** *yt* si*n*tur* *orm*t. T*is is only *n issu* *or t** *u

Reasoning

T** vuln*r**ility *o*um*nt*tion *xpli*itly i**nti*i*s t**s* two *un*tions *s ****ptin* *ot* tr**ition*l **-*yt* si*n*tur*s *n* *IP-**** *omp**t **-*yt* si*n*tur*s. T** *ommit *i** s*ows r*mov*l o* *o** **n*lin* **-*yt* si*n*tur*s in `tryR**ov*r(*yt*s