CVE-2023-49798
Openzeppelin Contracts 4.9.4
Raw vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:NCVSS and EPSS are reproduced from their sources (NVD, FIRST EPSS). Risk Priority is our own derived reading, not an NVD score.
Summary
CVE-2023-49798 is a medium-severity Always-Incorrect Control Flow Implementation (CWE-670) vulnerability in Openzeppelin Contracts. Its CVSS base score is 5.9 (Medium).
Operationally, ranked at the 44th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2023-3124
Vulnerability Data
OpenZeppelin Contracts is a library for smart contract development. A merge issue when porting the 5.0.1 patch to the 4.9 branch caused a line duplication. In the version of `Multicall.sol` released in `@openzeppelin/contracts@4.9.4` and `@openzeppelin/contracts-upgradeable@4.9.4`, all subcalls are executed twice.…
more
Concretely, this exposes a user to unintentionally duplicate operations like asset transfers. The duplicated delegatecall was removed in version 4.9.5. The 4.9.4 version is marked as deprecated. Users are advised to upgrade. There are no known workarounds for this issue.
- CWE(s)
Related Threats
CVEs Like This One
Affected Assets
Mitigating Controls
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.
A.8.25 mandates an SDLC process that includes security requirements, checkpoints, secure coding guidelines, testing and developer training, which reaches a slice of control-flow defects but leaves most implementation bugs untouched without perfect enforcement at every checkpoint.
Secure coding standards and reviews directly target flawed control-flow implementations.
Security testing in development and acceptance can detect paths that deviate from intended logic.
A.8.32 mandates a formal process for planning, authorizing, testing and documenting changes but does not itself inspect, correct or block the incorrect control-flow logic that CWE-670 describes; the defect can still be introduced and exploited if the developer writes it and the process accepts it.
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-670, a class-level weakness, and none of its children carries one either.