Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-52617 — Advisory e prova di concetto per l'iniezione di comandi del sistema operativo in un helper MCP per ffmpeg, con analisi delle cause profonde, indicazioni per i rilevatori e mitigazioni per un pacchetto npm non corretto. | Kitploit
Strumenti/GitHubGitHub/s1ko/cve-2026-52617
Analisi delle VulnerabilitàAnalisi del CodiceExploitSicurezza della Supply Chain
GitHubs1ko/cve-2026-52617

CVE-2026-52617

Advisory e prova di concetto per l'iniezione di comandi del sistema operativo in un helper MCP per ffmpeg, con analisi delle cause profonde, indicazioni per i rilevatori e mitigazioni per un pacchetto npm non corretto.

Vedi Repository
1 giorno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-52617 — @sworddut/mcp-ffmpeg-helper: iniezione di comandi del sistema operativo tramite le opzioni dello strumento ffmpeg

runFFmpegCommand passa una stringa costruita dai parametri dello strumento MCP a spawn(…, { shell: true }), quindi i metacaratteri della shell in options, format, codec, pixelFormat o extraOptions vengono eseguiti sull'host che esegue il server.

⚠ Non esiste una versione corretta

Al 2026-08-22 l'ultima release npm è la 0.2.1, che è la versione interessata, e la sink è ancora presente nel ramo predefinito del repository. Non c'è nulla a cui aggiornare. Vedi Mitigazione per cosa possono fare gli utenti nel frattempo.

Scarica lo strumento
CVECVE-2026-52617
CWECWE-78 (Neutralizzazione impropria di elementi speciali usati in un comando del sistema operativo)
Package@sworddut/mcp-ffmpeg-helper (npm)
Affected0.2.1 e precedenti — tutte le versioni pubblicate
Fixed innessuna
CVSS v3.1AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 7.8 Alto (trasporto stdio). AV:N → 9.8 Critico se il server è avvolto in un trasporto di rete.
Reported bys1ko (github.com/s1ko, [email protected])
CVE assigned2026-07-13, MITRE CNA-LR

Modello di minaccia

Gli argomenti degli strumenti MCP sono influenzabili dall'attaccante. Sono prodotti da un LLM a partire dal contenuto che l'agente elabora — documenti, pagine web, output degli strumenti — quindi l'iniezione indiretta di prompt mette l'attaccante in controllo dei valori che un handler di strumenti riceve. Un handler che inserisce uno di questi valori in una shell trasforma quell'influenza in esecuzione di codice sull'host che esegue il server MCP. Questo è lo stesso modello del precedente caso aws-mcp-server / CVE-2026-5058.

Un server di conversione multimediale è un obiettivo particolarmente naturale per questo: i file che gli viene chiesto di elaborare sono esattamente il contenuto non attendibile che un agente recupera da altrove.

Esecuzione

src/utils/ffmpeg.ts — il comando viene assemblato come stringa e la shell viene abilitata esplicitamente:

root@kitploit:~
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 }) esegue l'intera stringa tramite /bin/sh -c. Tutto ciò che il chiamante ha inserito in command è sintassi di shell.

src/tools/handlers.ts raggiunge quell'helper da tre strumenti, interpolando parametri che non vengono mai validati per il contenuto:

StrumentoParametri iniettabili
convert_videooptions
extract_audioformat
create_video_from_imagescodec, pixelFormat, extraOptions

Solo inputPath e outputPath vengono controllati, e gli schemi Zod validano il tipo (z.string()), mai il contenuto — quindi i metacaratteri passano direttamente.

Una chiamata convert_video con options impostato a ; touch /tmp/marker ; produce:

root@kitploit:~
/bin/sh -c "ffmpeg -i /tmp/in.mp4 ; touch /tmp/marker ; /tmp/out.mp4"

Riproduzione

poc/driver.mjs parla MCP su stdio: inizializza il server, emette una tools/call per convert_video con un valore options iniettato e verifica la presenza di un file marker. Il payload è un innocuo touch.

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

Atteso su una versione interessata:

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

ffmpeg non deve essere installato — il comando iniettato viene eseguito nella stessa stringa /bin/sh -c indipendentemente dal fatto che il binario iniziale venga risolto. Validato il 2026-06-01 in un container isolato, ri-validato il 2026-06-13 e la sink riconfermata presente sul ramo predefinito il 2026-08-22. Eseguilo solo contro infrastrutture che sei autorizzato a testare.

Rilevamento

  • Una riga di comando ffmpeg contenente ;, &&, ||, |, un backtick o $(. Le invocazioni legittime di ffmpeg di questo server non le contengono.
  • Un processo sh -c la cui riga di comando inizia con ffmpeg e contiene un secondo comando dopo un separatore — un segnale a livello di albero dei processi (auditd, eBPF, Falco, EDR) che non dipende dal logging dell'applicazione.
  • Figli inattesi del processo del server MCP. ffmpeg e ffprobe sono attesi; una shell, un interprete o un client di rete non lo sono.
  • Il server registra ogni invocazione su stderr come Running FFmpeg command: ffmpeg <command>, che è il punto più economico per individuare un valore iniettato, se i log vengono raccolti.
  • Log delle chiamate agli strumenti MCP in cui options, format, codec, pixelFormat o extraOptions contengono metacaratteri di shell.

MITRE ATT&CK T1059.004 Interprete di comandi e scripting: shell Unix.

Mitigazione

Non esiste una release corretta, quindi le opzioni sono contenimento e rimozione:

  • Smetti di usare il pacchetto se l'agente che serve elabora contenuti non attendibili. Questa è l'unica mitigazione completa disponibile oggi.
  • Se deve restare, eseguilo in un container o VM come utente non privilegiato, con un filesystem in sola lettura a parte la directory di lavoro dei media, nessuna credenziale nel suo ambiente e nessuna uscita di rete. L'esecuzione di codice compra quindi all'attaccante una sandbox piuttosto che l'host.
  • Non esporlo su un trasporto di rete. La distribuzione solo stdio è ciò che mantiene questo a 7.8 piuttosto che a 9.8.
  • Avvolgi o fork il server per rifiutare i metacaratteri di shell nei cinque parametri elencati sopra prima che raggiungano runFFmpegCommand.

La correzione a monte è rimuovere shell: true e passare a ffmpeg un vettore di argomenti — spawn("ffmpeg", ["-i", inputPath, …]) — costruendo quell'array da valori format, codec e pixelFormat consentiti piuttosto che da stringhe libere. La validazione del contenuto, non solo la validazione del tipo Zod, è il requisito sottostante.

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

Cronologia

DataEvento
2026-05-29Vulnerabilità identificata tramite revisione del codice sorgente del tarball pubblicato
2026-06-01Validata dinamicamente su MCP stdio in un container isolato
2026-06-13Ri-validata su un secondo host; il repository non ha la segnalazione privata di vulnerabilità abilitata, e i campi repository/bugs/homepage di package.json sono lasciati al template github.com/yourusername, senza lasciare un contatto di sicurezza documentato
2026-07-13MITRE CNA-LR assegna CVE-2026-52617, s1ko accreditato come scopritore
2026-08-22Sink riconfermata sul ramo predefinito; npm latest è ancora 0.2.1; questo report è stato pubblicato

Riferimenti

  • Pacchetto npm — https://www.npmjs.com/package/@sworddut/mcp-ffmpeg-helper
  • Repository — https://github.com/sworddut/mcp-ffmpeg-helper
  • Precedente per il modello di minaccia MCP — CVE-2026-5058 (aws-mcp-server)

Avvisi complementari della stessa ricerca: CVE-2026-52616, CVE-2026-52618.

Licenza

MIT — vedi LICENSE.