
Prova de conceito demonstrando uma vulnerabilidade de injeção de comandos na ferramenta MS-Agent Shell, permitindo execução arbitrária de comandos e shell reverso por meio de bypass em Python das verificações de segurança.
Uma vulnerabilidade crítica de injeção de comandos (CVE-2026–2256, CVSS X.X) foi identificada no componente da ferramenta Shell do framework MS-Agent versão 1.5.2. A vulnerabilidade surge da sanitização inadequada de entrada influenciada pelo usuário, que é passada diretamente para um contexto de execução de shell, permitindo a avaliação não intencional de comandos. Um atacante pode explorar essa falha injetando conteúdo manipulado em fontes de dados consumidas pelo agente, como prompts, documentos, logs ou entradas de pesquisa, sem exigir acesso direto ao shell ou uso indevido explícito do operador. Como resultado, comandos arbitrários podem ser executados com os privilégios do processo MS-Agent no sistema host como parte do fluxo normal de execução do agente, potencialmente levando ao comprometimento total do host.
A ferramenta Shell é um componente interno do MS-Agent que permite que agentes executem comandos do sistema operacional no host. Ela foi projetada para dar suporte a fluxos de trabalho do agente, como gerenciamento de arquivos, navegação em diretórios e tarefas de automação, delegando a execução de comandos ao SO subjacente.
Este PoC simplificado mostra como a função check_safe() na ferramenta Shell do ms-agent pode ser contornada para estabelecer um reverse shell usando Python.
nc (netcat)Execute o PoC para verificar se o comando contorna as verificações de segurança. Saída esperada: ✓ BYPASS BEM-SUCEDIDO - o comando passa em todas as verificações de segurança
Abra uma NOVA janela de terminal e execute:
nc -l 1111
Isso inicia um listener na porta 1111. Deixe este terminal aberto e aguardando.
No seu terminal original, execute:
./reverse_shell_poc.py --execute
Quando solicitado, digite yes e pressione Enter.
Alterne para o terminal com o listener netcat (do Passo 2). Agora você deve ter um prompt de shell!
Experimente comandos como:
whoami - veja seu nome de usuáriopwd - veja o diretório atualls - liste arquivosexit - feche a conexãopython3 para executar código arbitráriopython3 NÃO está na lista de comandos bloqueadosA função check_safe() bloqueia comandos como:
sudo, rm -rf /, chmod, curl | bash, etc.Mas ela NÃO bloqueia:
python3 (execução de código arbitrário)nc (netcat - conexões de rede)perl, ruby, node (outros interpretadores)Isso demonstra uma vulnerabilidade CRÍTICA:
Após o teste, você pode remover o diretório de teste:
rm -rf /tmp/test_output
Esta é uma demonstração apenas em localhost (conecta-se a 127.0.0.1). Este PoC evita intencionalmente a conectividade remota para reduzir o risco de abuso.