CVE-2023-25194: vulnerabilidad de ejecución remota de código en Apache Kafka

Una vulnerabilidad abordada por la última actualización de Apache Kafka es una vulnerabilidad de deserialización de Java inseguro que podría explotarse para ejecutar código de forma remota, con autenticación.

Apache Kafka es una plataforma de transmisión de eventos distribuidos de código abierto utilizada por miles de empresas para canalizaciones de datos de alto rendimiento, análisis de transmisión, integración de datos y aplicaciones de misión crítica. Más del 80 % de todas las empresas de Fortune 100 confían y utilizan Kafka.

Rastreado como CVE-2023-25194 Apache Kafka podría permitir que un atacante remoto autenticado ejecute código arbitrario en el sistema, causado por una deserialización insegura al configurar el conector a través de la API REST de Kafka Connect. Al enviar una solicitud especialmente diseñada un atacante podría aprovechar esta vulnerabilidad para ejecutar código arbitrario o provocar una denegación de servicio en el sistema. Apache Kafka ha sido catalogado como “ importante ”.

“ Al configurar el conector a través de la API REST de Kafka Connect, un operador autenticado puede establecer la propiedad `sasl.jaas.config` para cualquiera de los clientes Kafka del conector en “com.sun.security.auth.module.JndiLoginModule”, que puede hacerse a través de las propiedades `producer.override.sasl.jaas.config`, `consumer.override.sasl.jaas.config` o `admin.override.sasl.jaas.config` ”, según un  aviso de Apache.

Esto permitirá que el servidor se conecte al servidor LDAP del atacante y deserialice la respuesta LDAP, que el atacante puede usar para ejecutar cadenas de dispositivos de deserialización de Java en el servidor Kafka Connect. El atacante puede provocar la deserialización sin restricciones de los datos que no son de confianza (o) la vulnerabilidad RCE cuando hay dispositivos en el classpath. 

CVE-2023-25194 se solucionó con el lanzamiento de Apache Kafka versión 3.4.0 , y se recomienda a los usuarios que actualicen a las iteraciones parcheadas lo antes posible. El detalle de la vulnerabilidad está disponible en Hackerone.

Los usuarios también pueden mitigar el impacto de esta vulnerabilidad al validar las configuraciones del conector y solo permitir configuraciones JNDI confiables. Además examine las dependencias de los conectores en busca de versiones vulnerables y actualice sus conectores, actualice esa dependencia específica o elimine los conectores como opciones para la reparación.