CVE-2023-40014: Improper Encoding or Escaping of Output
OpenZeppelin Contracts is a library for secure smart contract development. Starting in version 4.0.0 and prior to version 4.9.3, contracts using ERC2771Context
along with a custom trusted forwarder may see _msgSender
return address(0)
in calls that originate from the forwarder with calldata shorter than 20 bytes. This combination of circumstances does not appear to be common, in particular it is not the case for MinimalForwarder
from OpenZeppelin Contracts, or any deployed forwarder the team is aware of, given that the signer address is appended to all calls that originate from these forwarders. The problem has been patched in v4.9.3.
References
- github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/CHANGELOG.md
- github.com/OpenZeppelin/openzeppelin-contracts/commit/9445f96223041abf2bf08daa56f8da50b674cbcd
- github.com/OpenZeppelin/openzeppelin-contracts/commit/e4435eed757d4309436b1e06608e97b6d6e2fdb5
- github.com/OpenZeppelin/openzeppelin-contracts/pull/4481
- github.com/OpenZeppelin/openzeppelin-contracts/pull/4484
- github.com/OpenZeppelin/openzeppelin-contracts/releases/tag/v4.9.3
- github.com/OpenZeppelin/openzeppelin-contracts/security/advisories/GHSA-g4vp-m682-qqmp
- github.com/advisories/GHSA-g4vp-m682-qqmp
- nvd.nist.gov/vuln/detail/CVE-2023-40014
Detect and mitigate CVE-2023-40014 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →