Read the docs
TI-2023-20905 Aliases CVE-2023-40014GHSA-g4vp-m682-qqmp

OpenZeppelin Contracts's ERC2771Context with custom forwarder may lead to zero-valued _msgSender

Priority LOW 31CWE-116Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
—
Confidentiality · integrity · availability
None · Low · None
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. 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.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00743 54th percentileScored 2026-11-07
Fix Fixed openzeppelin-contracts (OpenZeppelin): 4.9.3@openzeppelin/contracts (npm): 4.9.3+1 more product

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

VendorProductAffected versionsFixed inStatusSource
OpenZeppelinopenzeppelin-contracts4.0.0 to before 4.9.34.9.3Patch availableCNA
—@openzeppelin/contracts (npm)4.0.0 to before 4.9.34.9.3Patch availableGHSA-g4vp-m682-qqmp
—@openzeppelin/contracts-upgradeable (npm)4.0.0 to before 4.9.34.9.3Patch availableGHSA-g4vp-m682-qqmp
  • openzeppelin-contracts VendorOpenZeppelin Affected 4.0.0 to before 4.9.3 Fixed in 4.9.3 Patch available CNA
  • @openzeppelin/contracts (npm) Vendor— Affected 4.0.0 to before 4.9.3 Fixed in 4.9.3 Patch available GHSA-g4vp-m682-qqmp
  • @openzeppelin/contracts-upgradeable (npm) Vendor— Affected 4.0.0 to before 4.9.3 Fixed in 4.9.3 Patch available GHSA-g4vp-m682-qqmp

CPE configurations NVD · 2

CPEVersionsRoleVendor
cpe:2.3:a:openzeppelin:openzeppelin_contracts:*:*:*:*:*:node.js:*:*4.0.0 to before 4.9.3VulnerableOpenZeppelin
cpe:2.3:a:openzeppelin:openzeppelin_contracts-upgradable:*:*:*:*:*:node.js:*:*4.0.0 to before 4.9.3VulnerableOpenZeppelin
  • cpe:2.3:a:openzeppelin:openzeppelin_contracts:*:*:*:*:*:node.js:*:* Versions 4.0.0 to before 4.9.3 Vulnerable ·OpenZeppelin
  • cpe:2.3:a:openzeppelin:openzeppelin_contracts-upgradable:*:*:*:*:*:node.js:*:* Versions 4.0.0 to before 4.9.3 Vulnerable ·OpenZeppelin

Remediation

  • Fix · CNA openzeppelin-contracts (OpenZeppelin) Fixed in 4.9.3
  • Fix · GHSA-g4vp-m682-qqmp @openzeppelin/contracts (npm) Fixed in 4.9.3 Advisory →
  • Fix · GHSA-g4vp-m682-qqmp @openzeppelin/contracts-upgradeable (npm) Fixed in 4.9.3 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2023-40014
  2. 2026-10-03 Alias added: GHSA-g4vp-m682-qqmp

References

Sources