First published: Sun Apr 16 2023(Updated: )
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.
Credit: security-advisories@github.com
Affected Software | Affected Version | How to fix |
---|---|---|
OpenZeppelin Contracts | >=4.3.0<4.8.3 | |
OpenZeppelin Contracts Upgradeable | >=4.3.0<4.8.3 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
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.
The severity of CVE-2023-30542 is high with a CVSS score of 8.8.
CVE-2023-30542 affects OpenZeppelin Contracts versions between 4.3.0 and 4.8.3, allowing the creation of proposals with mismatched arrays.
To fix CVE-2023-30542, you should upgrade to OpenZeppelin Contracts version 4.8.3 or later.
You can find more information about CVE-2023-30542 in the OpenZeppelin Contracts release notes and the associated security advisory.