VYPR
High severityNVD Advisory· Published Aug 1, 2022· Updated Apr 23, 2025

GovernorVotesQuorumFraction updates to quorum may affect past defeated proposals in @openzeppelin/contracts

CVE-2022-31198

Description

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.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

OpenZeppelin GovernorVotesQuorumFraction bug allows old defeated proposals to become executable after quorum is lowered.

What the vulnerability is

The vulnerability exists in OpenZeppelin Contracts' Governor module when using GovernorVotesQuorumFraction, which computes quorum as a percentage of the voting token's total supply. If a governance proposal is passed that lowers the quorum requirement, past proposals that were previously defeated solely because they failed to meet the old quorum may become executable — as long as the number of votes they received meets the new, lower quorum threshold [1][4].

How it's exploited

An attacker (or even a well-intentioned but unaware proposer) could trigger this by passing a proposal that reduces the quorum fraction. No authentication bypass is needed; the exploit relies on the normal governance process. The attack surface is any Governor contract that uses GovernorVotesQuorumFraction and has previously had proposals defeated for lack of quorum. The vulnerability is that the system does not keep a historical record of quorum values at the time each proposal was considered, so reducing quorum retroactively grants passage for old proposals [3][4].

Impact

An attacker could gain the ability to execute previously defeated proposals, which might include actions like transferring funds, changing contract parameters, or other sensitive operations. OpenZeppelin's on-chain analysis found only one proposal that met this condition, but the impact could be severe in-specific contexts [1][4].

Mitigation

The issue has been patched in version v4.7.2, which now tracks historical quorum values to prevent retroactive passage [3][4]. Users are advised to upgrade. For those unable to upgrade immediately, the workaround is to avoid lowering quorum requirements if any past proposal was defeated for lack of quorum [1][4].

AI Insight generated on May 21, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
@openzeppelin/contractsnpm
>= 4.3.0, < 4.7.24.7.2
@openzeppelin/contracts-upgradeablenpm
>= 4.3.0, < 4.7.24.7.2

Affected products

3

Patches

0

No patches discovered yet.

Vulnerability mechanics

AI mechanics synthesis has not run for this CVE yet.

References

5

News mentions

0

No linked articles in our index yet.