Una prueba de concepto (PoC) pública ha sido divulgada para una vulnerabilidad crítica recientemente parcheada en Fortinet FortiSIEM, la cual podría permitir la ejecución de código arbitrario en sistemas afectados.
La falla, identificada como CVE-2026-106173 y con una puntuación CVSS de 9.4, es un defecto de path traversal que posibilita a un atacante no autenticado ejecutar código o comandos no autorizados mediante paquetes especialmente diseñados.
Fortinet publicó los parches la semana pasada: los usuarios de FortiSIEM 7.5.0 deben actualizar a la versión 7.5.1 o superior, mientras que la versión 7.6 no se ve afectada.
Según el análisis de Horizon3.ai, el problema radica en el manejo inseguro de metadatos en el servicio gRPC que escucha en el puerto TCP 27918. Un atacante no autenticado puede conectarse a este servicio y explotar la falla para sobrescribir un archivo existente fuera del directorio previsto, convirtiendo una primitiva de escritura arbitraria de archivos en ejecución remota de código.
El manejador QueryResultReq de FortiSIEM gRPC procesa metadatos no confiables sin una validación de ruta adecuada. Al crear metadatos que contienen secuencias de path traversal (../) e inyección de bytes nulos dentro de las capas de codificación HTTP/2 y HPACK de gRPC, un atacante puede escribir archivos arbitrarios en el sistema de archivos.
El origen del problema es una construcción insegura de rutas dentro de la función SendQueryResult(), que pasa un parámetro 'query-id' proporcionado por el usuario directamente sin la validación suficiente.
En otras palabras, un atacante puede aprovechar esta falla para incluir secuencias de directorios como '../' y escapar del directorio. Sin embargo, esto solo le permite navegar a un directorio de su elección y escribir en él, pero no elegir el nombre del archivo, ya que el programa añade automáticamente su propio nombre: 'result-<dirección IP de origen>-0-0-<id>.dat', donde <id> es un valor de contador controlado por el servidor.
Aquí entra en juego una segunda debilidad: se puede incrustar un byte nulo ('') en el parámetro 'query-id', lo que hace que el sistema operativo lo interprete como terminador de cadena y descarte todo lo que sigue. Esto provoca que el sufijo del nombre de archivo añadido se ignore cuando la ruta se pasa a la función de apertura de archivos.
Un atacante podría explotar este comportamiento para crear un valor 'query-id' con '' colocado de manera que esté precedido por el nombre real del archivo a sobrescribir, por ejemplo: '../../../../../opt/charting/redishb.sh…' El archivo en cuestión es un script de shell que realiza comprobaciones de estado del servicio Redis y se ejecuta cada 60 segundos mediante una tarea cron.
La escritura recae exactamente en la ruta que precede al byte nulo. Dirigida a un archivo existente, lo sobrescribe en su lugar, manteniendo el propietario y los permisos originales; una segunda variante utiliza dos solicitudes para crear un archivo completamente nuevo con un nombre exacto.


















Deja una respuesta