Skip to main content

Vulnerabilidad de corrupción de memoria de bits fluidos

mayo 22, 2024


Tenable Research ha descubierto una vulnerabilidad de corrupción de memoria en las versiones 2.0.7 a 3.0.3 de Fluent Bit. Este problema radica en el análisis de las solicitudes de seguimiento por parte del servidor http integrado y puede dar lugar a condiciones de denegación de servicio, divulgación de información o ejecución remota de código.

API de monitoreo de Fluent Bit tiene como objetivo permitir a los administradores u otros usuarios consultar y monitorear información interna del servicio en sí. Por ejemplo, existen puntos finales HTTP para indicar el tiempo de actividad del servicio, métricas de complementos, controles de estado, etc.

Entre estos puntos finales están /api/v1/rastros y /api/v1/trazaque permiten a los usuarios finales habilitar, deshabilitar o recuperar información sobre la configuración rastros. Independientemente de si hay algún seguimiento configurado o no, cualquier usuario con acceso a este punto final de API aún puede consultarlo.

Durante el análisis de solicitudes entrantes para el punto final de la API de «rastros», los tipos de nombres de entrada no se validan correctamente antes de analizarse. Se supone incorrectamente que son MSGPACK_OBJECT_STR válidos. Esto se puede ver aquí: https://github.com/fluent/fluent-bit/blob/master/src/http_server/api/v1/trace.c#L527

Al pasar valores que no son cadenas en la matriz de solicitudes de «entradas», como valores enteros, es posible causar una variedad de problemas de corrupción de memoria que podrían conducir a RCE. Durante la función flb_sds_create_len() que asigna la variable input_name, los valores pasados ​​cuando se proporciona un int resultan ser un puntero al comienzo de la matriz de entradas y el entero mismo como el «tamaño» del valor.

En un entorno de laboratorio aislado, los investigadores pudieron aprovechar este problema de manera confiable para bloquear el servicio y provocar un escenario de denegación de servicio. También pudieron recuperar fragmentos de memoria adyacente, que se devuelven en las respuestas HTTP. Si bien es poco probable que esto revele algo más que solicitudes de métricas anteriores, los investigadores pudieron ocasionalmente recuperar secretos parciales durante sus pruebas, lo que indica que este problema podría potencialmente filtrar información confidencial.

En cuanto a las posibilidades de ejecución remota de código de este problema, la explotación depende de una variedad de factores ambientales, como arquitectura de host y sistema operativo. Si bien los desbordamientos del búfer de almacenamiento dinámico como este son conocido ser explotable, crear un exploit confiable no sólo es difícil, sino que requiere muchísimo tiempo. Tenable Research cree que los riesgos más inmediatos y principales son aquellos relacionados con la facilidad con la que se pueden lograr DoS y fugas de información.

En última instancia, este problema se solucionó validando adecuadamente los tipos de datos de los valores en la matriz de «entradas» enviada al punto final de «rastros». Se pueden encontrar más detalles en la siguiente confirmación: https://github.com/fluent/fluent-bit/commit/9311b43a258352797af40749ab31a63c32acfd04



Source link

Translate »