Skip to content
OpenAdvisories
Medium · 6.8 CVE-2023-30542 EUVD-2023-1247GHSA-93hq-5wgc-jc82

GovernorCompatibilityBravo may trim proposal calldata

Published Apr 16, 2023 · Updated Feb 6, 2025 · Assigned by GitHub_M

Description

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 products

VendorProductAffectedFixed
OpenZeppelin openzeppelin-contracts >= 4.3.0, < 4.8.3 —

Affected packages

EcosystemPackageAffectedFixedRecord
npm @openzeppelin/contracts >= 4.3.0, < 4.8.3 4.8.3 GHSA-93hq-5wgc-jc82
npm @openzeppelin/contracts-upgradeable >= 4.3.0, < 4.8.3 4.8.3 GHSA-93hq-5wgc-jc82

References