CVE-2022-31198 json
GovernorVotesQuorumFraction updates to quorum may affect past defeated proposals in @openzeppelin/contracts
published 2022-08-01 4 y ago modified 2026-06-17 4 mo ago also GHSA-xrc4-737v-9q75 , EUVD-2022-6647
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.8%
- EPSS 0.8% chance of exploitation in 30 days, percentile 56%
- public exploits
- 0
- none known
Summary
OpenZeppelin Contracts is a library for secure smart contract development. This issue concerns instances of Governor that use the module `GovernorVotesQuorumFraction`, a mechanism that determines quorum requirements as a percentage of the voting token's total supply. In affected instances, when a proposal is passed to lower the quorum requirements, past proposals may become executable if they had been defeated only due to lack of quorum, and the number of votes it received meets the new quorum requirement. Analysis of instances on chain found only one proposal that met this condition, and we are actively monitoring for new occurrences of this particular issue. This issue has been patched in v4.7.2. Users are advised to upgrade. Users unable to upgrade should consider avoiding lowering quorum requirements if a past proposal was defeated for lack of quorum.
Patch / fix
- npm @openzeppelin/contracts 4.7.2
- npm @openzeppelin/contracts-upgradeable 4.7.2
- openzeppelin contracts 4.7.2
- openzeppelin contracts_upgradeable 4.7.2
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 18 mo ago
Exploit prediction
0.79% chance of exploitation in the next 30 days, higher than 56% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | @openzeppelin/contracts | >=4.3.0, <4.7.2 |
4.7.2 |
| npm | @openzeppelin/contracts-upgradeable | >=4.3.0, <4.7.2 |
4.7.2 |
Affected products
- OpenZeppelin openzeppelin-contracts
Classification
- Weakness
-
- CWE-682 Incorrect Calculation
References
-
github.com
/OpenZeppelin/openzeppelin-contracts/pull/3561
web, patch, third-party-advisory
-
github.com
/OpenZeppelin/openzeppelin-contracts/security/advisories/GHSA-xrc4-737v-9q75
web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2022-31198
advisory
-
github.com
/OpenZeppelin/openzeppelin-contracts
package
-
github.com
/OpenZeppelin/openzeppelin-contracts/releases/tag/v4.7.2
web
Sources
- CVE List CVE-2022-31198
- GitHub Advisory GHSA-xrc4-737v-9q75
- NVD CVE-2022-31198
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.