CVE-2023-30542: GovernorCompatibilityBravo may trim proposal calldata
OpenZeppelin Contracts is a library for secure smart contract development. The proposal creation entrypoint (propose) in GovernorCompatibilityBravo allows the creation of proposals with a signatures array shorter than the calldatas array. This causes the additional elements of the latter to be ignored, and if the proposal succeeds the corresponding actions would eventually execute without any calldata. The ProposalCreated event correctly represents what will eventually execute, but the proposal parameters as queried through getActions appear to respect the original intended calldata. This issue has been patched in 4.8.3. As a workaround, ensure that all proposals that pass through governance have equal length signatures and calldatas parameters.
Affected Software
Event History
Frequently Asked Questions
What is CVE-2023-30542?
CVE-2023-30542 is a vulnerability in the OpenZeppelin Contracts library that allows the creation of proposals with a shorter signatures array than the calldatas array.
What is the severity of CVE-2023-30542?
The severity of CVE-2023-30542 is high with a CVSS score of 8.8.
How does CVE-2023-30542 affect OpenZeppelin Contracts?
CVE-2023-30542 affects OpenZeppelin Contracts versions between 4.3.0 and 4.8.3, allowing the creation of proposals with mismatched arrays.
How can I fix CVE-2023-30542?
To fix CVE-2023-30542, you should upgrade to OpenZeppelin Contracts version 4.8.3 or later.
Where can I find more information about CVE-2023-30542?
You can find more information about CVE-2023-30542 in the OpenZeppelin Contracts release notes and the associated security advisory.