Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-52617 — Advisory e prova de conceito para injeção de comandos do sistema operacional em um auxiliar MCP ffmpeg, com análise de causa raiz, orientação para detecção e mitigações para um pacote npm não corrigido. | Kitploit
Ferramentas/GitHubGitHub/s1ko/cve-2026-52617
Análise de VulnerabilidadesAnálise de CódigoExploraçãoSegurança da Cadeia de Suprimentos
GitHubs1ko/cve-2026-52617

CVE-2026-52617

Advisory e prova de conceito para injeção de comandos do sistema operacional em um auxiliar MCP ffmpeg, com análise de causa raiz, orientação para detecção e mitigações para um pacote npm não corrigido.

Ver Repositório
40há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-52617 — @sworddut/mcp-ffmpeg-helper: injeção de comando do SO via opções da ferramenta ffmpeg

runFFmpegCommand passa uma string construída a partir dos parâmetros da ferramenta MCP para spawn(…, { shell: true }), de modo que metacaracteres de shell em options, format, codec, pixelFormat ou extraOptions são executados no host que executa o servidor.

⚠ Não existe versão corrigida

Em 2026-08-22, a versão mais recente no npm é a 0.2.1, que é a versão afetada, e o sink ainda está presente no branch padrão do repositório. Não há para onde atualizar. Consulte Mitigação para saber o que os usuários podem fazer enquanto isso.

CVECVE-2026-52617
CWECWE-78 (Neutralização Incorreta de Elementos Especiais usados em um Comando do SO)
Pacote@sworddut/mcp-ffmpeg-helper (npm)
Afetado0.2.1 e anteriores — todas as versões publicadas
Corrigido emnenhuma
CVSS v3.1AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 8.4 Alto (transporte stdio). AV:N → 9.8 Crítico se o servidor for encapsulado em um transporte de rede.
Reportado pors1ko (github.com/s1ko, [email protected])
CVE atribuído2026-07-13, MITRE CNA-LR

Modelo de ameaça

Os argumentos das ferramentas MCP são influenciados pelo atacante. Eles são produzidos por um LLM a partir do conteúdo que o agente processa — documentos, páginas web, saída de ferramentas —, de modo que a injeção indireta de prompt coloca um atacante no controle dos valores que um manipulador de ferramenta recebe. Um manipulador que alimenta qualquer um desses valores em um shell transforma essa influência em execução de código no host que executa o servidor MCP. Este é o mesmo modelo do caso precedente aws-mcp-server / CVE-2026-5058.

Um servidor de conversão de mídia é um alvo particularmente natural para isso: os arquivos que lhe são solicitados a processar são exatamente o conteúdo não confiável que um agente capta de outros lugares.

Execução

src/utils/ffmpeg.ts — o comando é montado como uma string e o shell é habilitado explicitamente:

function runProcess(command: string, args: string[], useShell = false) {
  const child = spawn(command, args, { shell: useShell, windowsHide: true });
  …
}

export async function runFFmpegCommand(command: string): Promise<string> {
  const { stdout, stderr, code } = await runProcess(`ffmpeg ${command}`, [], true);
  …
}

spawn("ffmpeg " + command, [], { shell: true }) executa a string inteira através de /bin/sh -c. Tudo o que o chamador contribuiu para command é sintaxe de shell.

src/tools/handlers.ts alcança esse helper a partir de três ferramentas, interpolando parâmetros que nunca são validados quanto ao conteúdo:

FerramentaParâmetros injetáveis
convert_videooptions
extract_audioformat
create_video_from_imagescodec, pixelFormat, extraOptions

Apenas inputPath e outputPath são verificados, e os schemas Zod validam o tipo (z.string()), nunca o conteúdo — portanto metacaracteres passam diretamente.

Uma chamada convert_video com options definido como ; touch /tmp/marker ; produz:

/bin/sh -c "ffmpeg -i /tmp/in.mp4 ; touch /tmp/marker ; /tmp/out.mp4"

Reprodução

poc/driver.mjs comunica-se via MCP sobre stdio: ele inicializa o servidor, emite uma tools/call para convert_video com um valor options injetado, e verifica a existência de um arquivo marcador. O payload é um touch benigno.

npm pack @sworddut/[email protected]
tar xf sworddut-mcp-ffmpeg-helper-0.2.1.tgz && cd package && npm install
node ../poc/driver.mjs

Esperado em uma versão afetada:

==== POC RESULT (@sworddut/mcp-ffmpeg-helper) ====
marker /tmp/PWNED_ffmpeg created: true
verdict: CONFIRMED — command injection executed

ffmpeg não precisa estar instalado — o comando injetado é executado na mesma string /bin/sh -c, independentemente de o binário inicial ser resolvido ou não. Validado em 2026-06-01 num contentor isolado, revalidado em 2026-06-13, e o sink reconfirmado como presente no branch predefinido em 2026-08-22. Execute-o apenas contra infraestrutura que está autorizado a testar.

Deteção

  • Uma linha de comando ffmpeg contendo ;, &&, ||, |, um backtick ou $(. Invocações legítimas de ffmpeg a partir deste servidor não contêm.
  • Um processo sh -c cuja linha de comando começa por ffmpeg e contém um segundo comando após um separador — um sinal de árvore de processos (auditd, eBPF, Falco, EDR) que não depende do registo da aplicação.
  • Processos filhos inesperados do processo do servidor MCP. ffmpeg e ffprobe são esperados; uma shell, um interpretador ou um cliente de rede não são.
  • O servidor regista cada invocação em stderr como Running FFmpeg command: ffmpeg <command>, que é o local mais barato para detetar um valor injetado se os registos forem recolhidos.
  • Registos de chamadas de ferramentas MCP onde options, format, codec, pixelFormat ou extraOptions contêm metacaracteres de shell.

MITRE ATT&CK T1059.004 Command and Scripting Interpreter: Unix Shell.

Mitigação

Não existe uma versão corrigida, pelo que as opções são a contenção e a remoção:

  • Deixe de usar o pacote se o agente que serve processar qualquer conteúdo não fidedigno. Esta é a única mitigação completa disponível atualmente.
  • Se tiver de permanecer, execute-o num contentor ou VM como utilizador sem privilégios, com um sistema de ficheiros só de leitura exceto no diretório de trabalho de media, sem credenciais no seu ambiente e sem saída de rede. A execução de código passa então a dar ao atacante uma sandbox em vez do host.
  • Não o exponha através de um transporte de rede. A implementação apenas com stdio é o que mantém isto em 8.4 em vez de 9.8.
  • Envolva ou faça fork do servidor para rejeitar metacaracteres de shell nos cinco parâmetros listados acima antes de chegarem a runFFmpegCommand.

A correção upstream é remover shell: true e passar ao ffmpeg um vetor de argumentos — spawn("ffmpeg", ["-i", inputPath, …]) — construindo esse array a partir de valores de format, codec e pixelFormat permitidos em vez de a partir de strings de formato livre. A validação de conteúdo, e não apenas a validação de tipos Zod, é o requisito subjacente.

NIST SP 800-53r5 SI-10; OWASP ASVS v4 §5.3.8; mitigações CWE-78 M1 e M2.

Cronologia

DataEvento
2026-05-29Vulnerabilidade identificada por revisão do código-fonte do tarball publicado
2026-06-01Validada dinamicamente via MCP stdio num contentor isolado
2026-06-13Revalidada num segundo host; o repositório não tem Private Vulnerability Reporting ativado, e os campos repository/bugs/homepage do package.json permanecem no modelo github.com/yourusername, não deixando qualquer contacto de segurança documentado
2026-07-13O MITRE CNA-LR atribui CVE-2026-52617, com s1ko creditado como descobridor
2026-08-22Sink reconfirmado no branch predefinido; npm latest ainda 0.2.1; este write-up publicado

Referências

  • Pacote npm — https://www.npmjs.com/package/@sworddut/mcp-ffmpeg-helper
  • Repositório — https://github.com/sworddut/mcp-ffmpeg-helper
  • Precedente para o modelo de ameaça MCP — CVE-2026-5058 (aws-mcp-server)

Avisos complementares da mesma passagem de investigação: CVE-2026-52616, CVE-2026-52618.

Licença

MIT — ver LICENSE.

Baixar ferramenta