TransparentUpgradeableProxy clashing selector calls may not be delegated in @openzeppelin/contracts
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- None · None · Low
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.
Summary
OpenZeppelin Contracts is a library for secure smart contract development. A function in the implementation contract may be inaccessible if its selector clashes with one of the proxy's own selectors. Specifically, if the clashing function has a different signature with incompatible ABI encoding, the proxy could revert while attempting to decode the arguments from calldata. The probability of an accidental clash is negligible, but one could be caused deliberately and could cause a reduction in availability. The issue has been fixed in version 4.8.3. As a workaround if a function appears to be inaccessible for this reason, it may be possible to craft the calldata such that ABI decoding does not fail at the proxy and the function is properly proxied through.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| OpenZeppelin | openzeppelin-contracts | @openzeppelin/contracts: >= 3.2.0, < 4.8.3; @openzeppelin/contracts-upgradeable: >=3.2.0, <4.8.3 | — | No fix listed | CNA |
| — | @openzeppelin/contracts (npm) | 3.2.0 to before 4.8.3 | 4.8.3 | Patch available | GHSA-mx2q-35m2-x2rh |
| — | @openzeppelin/contracts-upgradeable (npm) | 3.2.0 to before 4.8.3 | 4.8.3 | Patch available | GHSA-mx2q-35m2-x2rh |
- openzeppelin-contracts VendorOpenZeppelin Affected @openzeppelin/contracts: >= 3.2.0, < 4.8.3; @openzeppelin/contracts-upgradeable: >=3.2.0, <4.8.3 Fixed in — No fix listed CNA
- @openzeppelin/contracts (npm) Vendor— Affected 3.2.0 to before 4.8.3 Fixed in 4.8.3 Patch available GHSA-mx2q-35m2-x2rh
- @openzeppelin/contracts-upgradeable (npm) Vendor— Affected 3.2.0 to before 4.8.3 Fixed in 4.8.3 Patch available GHSA-mx2q-35m2-x2rh
CPE configurations NVD · 2
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:openzeppelin:contracts:*:*:*:*:*:node.js:*:* | 3.2.0 to before 4.8.3 | Vulnerable | OpenZeppelin |
| cpe:2.3:a:openzeppelin:contracts_upgradeable:*:*:*:*:*:node.js:*:* | 3.2.0 to before 4.8.3 | Vulnerable | OpenZeppelin |
- cpe:2.3:a:openzeppelin:contracts:*:*:*:*:*:node.js:*:* Versions 3.2.0 to before 4.8.3 Vulnerable ·OpenZeppelin
- cpe:2.3:a:openzeppelin:contracts_upgradeable:*:*:*:*:*:node.js:*:* Versions 3.2.0 to before 4.8.3 Vulnerable ·OpenZeppelin
Remediation
- Fix · GHSA-mx2q-35m2-x2rh @openzeppelin/contracts (npm) Fixed in 4.8.3 Advisory →
- Fix · GHSA-mx2q-35m2-x2rh @openzeppelin/contracts-upgradeable (npm) Fixed in 4.8.3 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2023-30541
- 2026-10-03 Alias added: GHSA-mx2q-35m2-x2rh
References
Advisory 2
More OpenZeppelin Contracts vulnerabilities
- TI-2022-13196 OpenZeppelin Contracts for Cairo account cannot process transactions on Goerli CVSS 3.1MEDIUM 6.5
- TI-2021-16554 TimelockController vulnerability in OpenZeppelin Contracts CVSS 3.1CRITICAL 10.0
- TI-2021-16553 TimelockController vulnerability in OpenZeppelin Contracts CVSS 3.1CRITICAL 10.0
- TI-2021-18096 UUPSUpgradeable vulnerability in OpenZeppelin Contracts CVSS 3.1CRITICAL 9.8
- TI-2022-13238 GovernorVotesQuorumFraction updates to quorum may affect past defeated proposals in @openzeppelin/contracts CVSS 3.1HIGH 7.5
- TI-2022-13212 OpenZeppelin Contracts's ERC165Checker may revert instead of returning false CVSS 3.1HIGH 7.5
Sources
- CVE-2023-30541 · CVE Program
- CVE-2023-30541 · NVD
- FIRST EPSS
- GHSA-mx2q-35m2-x2rh · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences