Vulnerability · Published Apr 17, 2023 · Assigned by GitHub_M

CVE-2023-30541TransparentUpgradeableProxy clashing selector calls may not be delegated in @openzeppelin/contracts

Medium 5.3

In plain English

A medium-severity security flaw in openzeppelin-contracts from OpenZeppelin. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.8% (higher than 57% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)5.3Medium
Exploit odds (30 days)0.8%top 42.8% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

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.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
npm@openzeppelin/contracts4.8.3GHSA-mx2q-35m2-x2rh
npm@openzeppelin/contracts-upgradeable4.8.3GHSA-mx2q-35m2-x2rh

Affected products (as reported)

VendorProductVersions
OpenZeppelin openzeppelin-contracts @openzeppelin/contracts: >= 3.2.0, < 4.8.3@openzeppelin/contracts-upgradeable: >=3.2.0, <4.8.3

Weakness: CWE-436 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

References