Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 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
401 mese 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 OS 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 il sink è ancora presente sul branch predefinito del repository. Non c'è nulla a cui aggiornare. Vedi Mitigazione per ciò che gli utenti possono fare nel frattempo.

CVECVE-2026-52617
CWECWE-78 (Neutralizzazione impropria di elementi speciali usati in un comando OS)
Pacchetto@sworddut/mcp-ffmpeg-helper (npm)
Interessate0.2.1 e precedenti — tutte le versioni pubblicate
Corretta innessuna
CVSS v3.1AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 8.4 Alto (trasporto stdio). AV:N → 9.8 Critico se il server è incapsulato in un trasporto di rete.
Segnalato das1ko (github.com/s1ko, [email protected])
CVE assegnata2026-07-13, MITRE CNA-LR

Modello di minaccia

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

Un server di conversione multimediale è un bersaglio particolarmente naturale per questo: i file che gli vengono chiesti di elaborare sono esattamente il contenuto non attendibile che un agente raccoglie altrove.

Esecuzione

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

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 contribuito a command è sintassi della shell.

src/tools/handlers.ts raggiunge quell'helper da tre strumenti, interpolando parametri che non vengono mai validati nel 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 a convert_video con options impostato a ; touch /tmp/marker ; produce:

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

Riproduzione

poc/driver.mjs comunica tramite MCP su stdio: inizializza il server, invia una singola tools/call per convert_video con un valore options iniettato e verifica la presenza di un file marcatore. Il payload è un 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

Atteso su una versione interessata:

==== 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. Convalidato il 2026-06-01 in un container isolato, riconvalidato il 2026-06-13, e il sink riconfermato presente sul branch 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 da questo server non ne 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.
  • Processi 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 della shell.

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

Mitigazione

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

  • Interrompi l'uso del pacchetto se l'agente che serve elabora contenuti non attendibili. Questa è l'unica mitigazione completa disponibile oggi.
  • Se deve rimanere, 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 garantisce quindi all'attaccante una sandbox anziché l'host.
  • Non esporlo su un trasporto di rete. La distribuzione solo stdio è ciò che mantiene questo a 8.4 anziché 9.8.
  • Avvolgi o effettua il fork del server per rifiutare i metacaratteri della shell nei cinque parametri elencati sopra prima che raggiungano runFFmpegCommand.

La correzione upstream consiste nel rimuovere shell: true e passare a ffmpeg un vettore di argomenti — spawn("ffmpeg", ["-i", inputPath, …]) — costruendo tale array da valori format, codec e pixelFormat in allowlist anziché da stringhe libere. La validazione del contenuto, non solo la validazione dei tipi Zod, è il requisito di fondo.

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-01Convalidata dinamicamente tramite MCP stdio in un container isolato
2026-06-13Riconvalidata su un secondo host; il repository non ha il Private Vulnerability Reporting abilitato, e i campi repository/bugs/homepage di package.json sono lasciati al template github.com/yourusername, senza alcun contatto di sicurezza documentato
2026-07-13MITRE CNA-LR assegna CVE-2026-52617, s1ko accreditato come scopritore
2026-08-22Sink riconfermato sul branch predefinito; npm latest è ancora 0.2.1; pubblicato questo write-up

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 dalla stessa sessione di ricerca: CVE-2026-52616, CVE-2026-52618.

Licenza

MIT — vedi LICENSE.

Scarica lo strumento