GHSA-9c22-pwxw-p6hx
OpenZeppelin Contracts initializer reentrancy may lead to double initialization
En bref
- Publiée
- Mise à jour
- CVE
- CVE-2021-46320, CVE-2022-39384
- Alias
- GHSA-88g8-f5mf-f5rj
- CVSS_V3
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L
Description
### Impact 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. ### Patches A fix is included in the version v4.4.1 of `@openzeppelin/contracts` and `@openzeppelin/contracts-upgradeable`. ### Workarounds Avoid untrusted external calls during initialization. ### References https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3006 ### Credits This issue was identified and reported by @chaitinblockchain through [our bug bounty on Immunefi](https://immunefi.com/bounty/openzeppelin/). ### For more information If you have any questions or comments about this advisory, or need assistance executing the mitigation, email us at security@openzeppelin.com.
Paquets affectés
| Paquet | Versions |
|---|---|
| npm · @openzeppelin/contracts | introduced 3.2.0, fixed 4.4.1 |
| npm · @openzeppelin/contracts-upgradeable | introduced 3.2.0, fixed 4.4.1 |
Références
- https://github.com/OpenZeppelin/openzeppelin-contracts/security/advisories/GHSA-9c22-pwxw-p6hx WEB
- https://nvd.nist.gov/vuln/detail/CVE-2022-39384 ADVISORY
- https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3006 WEB
- https://github.com/OpenZeppelin/openzeppelin-contracts PACKAGE
Sources
| Source | Licence |
|---|---|
| OSV.dev | CC-BY 4.0 — GitHub Advisory Database |