CVE-2022-39384
CVE-2022-39384 is a medium-severity vulnerability in Openzeppelin Contracts with a CVSS 3.x base score of 5.6. It is not currently listed as actively exploited by CISA, and its EPSS exploit-prediction score is low. The underlying weakness is classified as CWE-665.
Key facts
- Severity: Medium (CVSS 3.x base score 5.6)
- EPSS exploit prediction: 0% (39th percentile)
- Actively exploited: Not listed in CISA KEV
- Weakness: CWE-665
- Affected product: Openzeppelin Contracts
- Published:
- Last modified:
Description
OpenZeppelin Contracts is a library for secure smart contract development. Before version 4.4.1 but after 3.2.0, initializer functions that are invoked separate from contract creation (the most prominent example being minimal proxies) may be reentered if they make an untrusted non-view external call. Once an initializer has finished running it can never be re-executed. However, an exception put in place to support multiple inheritance made reentrancy possible in the scenario described above, breaking the expectation that there is a single execution. Note that upgradeable proxies are commonly initialized together with contract creation, where reentrancy is not feasible, so the impact of this issue is believed to be minor. This issue has been patched, please upgrade to version 4.4.1. As a workaround, avoid untrusted external calls during initialization.
Frequently asked questions
- What is CVE-2022-39384?
- OpenZeppelin Contracts is a library for secure smart contract development. Before version 4.4.1 but after 3.2.0, initializer functions that are invoked separate from contract creation (the most prominent example being minimal proxies) may be reentered if they make an untrusted non-view external call. Once an initializer has finished running it can never be re-executed. However, an exception put in place to support multiple inheritance made reentrancy possible in the scenario described above, breaking the expectation that there is a single execution. Note that upgradeable proxies are commonly initialized together with contract creation, where reentrancy is not feasible, so the impact of this issue is believed to be minor. This issue has been patched, please upgrade to version 4.4.1. As a workaround, avoid untrusted external calls during initialization.
- How severe is CVE-2022-39384?
- CVE-2022-39384 has a CVSS 3.x base score of 5.6, rated medium severity. It is exploitable over network with high attack complexity, requires no privileges and no user interaction. Impact on confidentiality is low, integrity low, and availability low.
- Is CVE-2022-39384 being actively exploited?
- It is not currently listed in CISA's KEV catalog. Its EPSS exploit-prediction score is 0% (39th percentile), an estimate of the probability of exploitation in the next 30 days.
- What products are affected by CVE-2022-39384?
- CVE-2022-39384 primarily affects Openzeppelin Contracts. In total, 2 product configurations (CPEs) are listed as vulnerable; see the affected-products list for the exact versions.
- How do I fix CVE-2022-39384?
- Review the linked vendor and NVD advisories for patched versions and mitigations, then upgrade or apply the recommended workaround.
- When was CVE-2022-39384 published?
- CVE-2022-39384 was published on 2022-11-04 and last updated on 2026-06-17.
References
- https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3006
- https://github.com/OpenZeppelin/openzeppelin-contracts/security/advisories/GHSA-9c22-pwxw-p6hx
Affected products (2)
- cpe:2.3:a:openzeppelin:contracts:*:*:*:*:*:node.js:*:*
- cpe:2.3:a:openzeppelin:contracts_upgradeable:*:*:*:*:*:node.js:*:*
More vulnerabilities in Openzeppelin Contracts
- CVE-2021-39168 — Critical (CVSS 10.0): OpenZepplin is a library for smart contract development. In affected versions a vulnerability in TimelockController…
- CVE-2021-39167 — Critical (CVSS 10.0): OpenZepplin is a library for smart contract development. In affected versions a vulnerability in TimelockController…
- CVE-2021-41264 — Critical (CVSS 9.8): OpenZeppelin Contracts is a library for smart contract development. In affected versions upgradeable contracts using…
- CVE-2022-35961 — High (CVSS 7.9): OpenZeppelin Contracts is a library for secure smart contract development. The functions `ECDSA.recover` and…
- CVE-2022-31198 — High (CVSS 7.5): OpenZeppelin Contracts is a library for secure smart contract development. This issue concerns instances of Governor…
- CVE-2022-31172 — High (CVSS 7.5): OpenZeppelin Contracts is a library for smart contract development. Versions 4.1.0 until 4.7.1 are vulnerable to the…
All CVEs affecting Openzeppelin Contracts →
Other CWE-665 (Improper Initialization) vulnerabilities
- CVE-2021-33635 — Critical (CVSS 9.8): When malicious images are pulled by isula pull, attackers can execute arbitrary code.
- CVE-2022-37128 — Critical (CVSS 9.8): In D-Link DIR-816 A2_v1.10CNB04.img the network can be initialized without authentication via /goform/wizard_end.
- CVE-2021-41264 — Critical (CVSS 9.8): OpenZeppelin Contracts is a library for smart contract development. In affected versions upgradeable contracts using…
- CVE-2019-10196 — Critical (CVSS 9.8): A flaw was found in http-proxy-agent, prior to version 2.1.0. It was discovered http-proxy-agent passes an auth option…
- CVE-2015-8367 — Critical (CVSS 9.8): The phase_one_correct function in Libraw before 0.17.1 allows attackers to cause memory errors and possibly execute…
- CVE-2019-14271 — Critical (CVSS 9.8): In Docker 19.03.x before 19.03.1 linked against the GNU C Library (aka glibc), code injection can occur when the…
Browse all CWE-665 (Improper Initialization) vulnerabilities →