CVE-2023-30542
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.
How to fix
- 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
| Product | Affected versions | Fixed in |
|---|---|---|
| openzeppelin contracts | 4.3.0 ≤ v < 4.8.3 | 4.8.3 |
| openzeppelin contracts_upgradeable | 4.3.0 ≤ v < 4.8.3 | 4.8.3 |
| @openzeppelin/contractsnpm | 4.3.0 ≤ v < 4.8.3 | 4.8.3 |
| @openzeppelin/contracts-upgradeablenpm | 4.3.0 ≤ v < 4.8.3 | 4.8.3 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.