Media

OpenZeppelin Contracts initializer reentrancy may lead to double initialization

  • Publicada: 14.12.2021
  • Actualizado: 11.10.2026 10:22

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.

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.

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Paquete de npm @openzeppelin/contracts >= 3.2.0, < 4.4.1 4.4.1
Paquete de npm @openzeppelin/contracts-upgradeable >= 3.2.0, < 4.4.1 4.4.1

Referencias

Puntuación CVSS 5.6/10
Vector CVSS
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L
Debilidad (CWE)
CWE-665
Plataforma
npm
Paquete
@openzeppelin/contracts, @openzeppelin/contracts-upgradeable
Publicada
14.12.2021
Actualizado
11.10.2026 10:22

Fuentes y licencias

OSV / GitHub Advisory Database - GHSA-88g8-f5mf-f5rj - CC BY 4.0

OSV / GitHub Advisory Database - GHSA-9c22-pwxw-p6hx - CC BY 4.0

Historial de vulnerabilidades: @openzeppelin/contracts

Todas las vulnerabilidades publicadas de este paquete (Paquete de npm), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.

Todas (20) en el archivo
Entradas en total
20
Primera → última
08.2021 07.2025
Sin corrección
0
Explotada en ataques
0

Distribución por gravedad

  • Crítica 2
  • Alta 5
  • Media 12
  • Baja 1

Divulgaciones por año

  1. 2021: 4
  2. 2022: 7
  3. 2023: 7
  4. 2024: 1
  5. 2025: 1
  6. 2026: 0
Gravedad:
  1. Alta · 8.8 CVE-2023-30542 >= 4.3.0, < 4.8.3 4.8.3
  2. Alta · 7.9 CVE-2022-35961 >= 4.1.0, < 4.7.3 4.7.3
  3. Alta · 7.5 CVE-2022-31170 >= 4.0.0, < 4.7.1 4.7.1
  4. OpenZeppelin Contracts initializer reentrancy may lead to double initialization esta entrada
    Media · 5.6 CVE-2021-46320 >= 3.2.0, < 4.4.1 4.4.1
  5. Crítica · 9.8 CVE-2021-41264 >= 4.1.0, < 4.3.2 4.3.2
  6. Crítica · 10.0 CVE-2021-39167 >= 4.0.0, < 4.3.1, >= 3.3.0, < 3.4.2 4.3.1, 3.4.2

Identifica las vulnerabilidades de tu aplicación

Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.