Security Resilience

CVE-2023-40014

Openzeppelin Contracts 4.0.0 – 4.9.3

Published
10 August 2023
Modified
21 November 2024
Patch / advisory
CVSS Score v3.1 5.3
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
EPSS Score 0.0074 54th percentile
Risk Priority 45 floored blend · peak EPSS

CVSS and EPSS are reproduced from their sources (NVD, FIRST EPSS). Risk Priority is our own derived reading, not an NVD score.

Summary

CVE-2023-40014 is a medium-severity Improper Encoding or Escaping of Output (CWE-116) vulnerability in Openzeppelin Openzeppelin Contracts. Its CVSS base score is 5.3 (Medium).

Operationally, ranked in the top 46% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

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…

more

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.

CWE(s)

Related Threats

CVEs Like This One

CVE-2023-30542Same vendor: Openzeppelin
CVE-2023-26488Same vendor: Openzeppelin
CVE-2023-49798Same vendor: Openzeppelin
CVE-2023-23940Same vendor: Openzeppelin
CVE-2023-34459Same vendor: Openzeppelin
CVE-2023-34234Same vendor: Openzeppelin
CVE-2024-27094Same vendor: Openzeppelin
CVE-2023-30541Same vendor: Openzeppelin
CVE-2024-45304Same vendor: Openzeppelin
CVE-2026-22712Shared CWE-116

Affected Assets

openzeppelin
openzeppelin contracts
4.0.0 — 4.9.3
openzeppelin
openzeppelin contracts-upgradable
4.0.0 — 4.9.3

Mitigating Controls

Likely Mitigating Controls AI

Per-CVE control mapping for this CVE has not run yet; the list below is derived from the weakness types (CWEs) cited in the NVD entry.

addresses: CWE-116

Validating that output matches expected content directly mitigates failures to properly encode or escape data for its destination context.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

blocks

A.8.25 mandates secure SDLC practices including secure coding guidelines, security requirements, checkpoints, testing (scans/penetration), and developer training that reach output encoding/escaping to stop injection-style exploits, but leaves a bounded remainder (e.g. ad-hoc/non-SDLC code changes, incomplete guideline enforcement, or non-software outputs)

blocks

Application security requirements include explicit rules for safe output handling and encoding.

blocks

A.8.27 mandates security-by-design principles (including distrust external input, secure session control, data validation/sanitization, defense-in-depth, and design reviews against attack patterns) that reach output encoding/escaping for many common channels, but leaves a bounded remainder (e.g. ad-hoc or non-reviewed custom protocols, unsafe string concatenation in obscure sinks, or cases where the principles are only documented and not enforced in implementation).

prevents

Secure coding standards explicitly require correct output encoding and escaping to preserve message structure.

finds

Security testing can detect missing or incorrect encoding but does not itself implement the control.

Hardening callouts derived

DISA STIG baselines are authored against specific weaknesses. Where this CVE cites a broad weakness class, the mapping is not asserted at that abstraction (owner ruling, 2026-09-25: grade only at Base and below), so no rule is shown here rather than a rule shown against the wrong grain.

  • No fine-grained STIG row for CWE-116, a class-level weakness, and none of its children carries one either.

References