CVE-2023-30542

Medium

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.

SeverityMedium
CVSS6.8
Exploit probability—
ProductOpenzeppelin Contracts
PublishedApr 16, 2023
First seenApr 16, 2023

How to fix

Update
  • openzeppelin contracts4.8.3 or later
  • openzeppelin contracts_upgradeable4.8.3 or later
  • @openzeppelin/contracts4.8.3 or later
  • @openzeppelin/contracts-upgradeable4.8.3 or later

Affected products

ProductAffected versionsFixed in
openzeppelin contracts4.3.0 ≤ v < 4.8.34.8.3
openzeppelin contracts_upgradeable4.3.0 ≤ v < 4.8.34.8.3
@openzeppelin/contractsnpm4.3.0 ≤ v < 4.8.34.8.3
@openzeppelin/contracts-upgradeablenpm4.3.0 ≤ v < 4.8.34.8.3

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.