Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-52617 — Advisory und Proof-of-Concept für eine OS-Kommando-Injection in einem MCP-ffmpeg-Helfer, mit Ursachenanalyse, Detektionshinweisen und Gegenmaßnahmen für ein nicht gepatchtes npm-Paket. | Kitploit
Tools/GitHubGitHub/s1ko/cve-2026-52617
SchwachstellenanalyseCode-AnalyseExploitationLieferkettensicherheit
GitHubs1ko/cve-2026-52617

CVE-2026-52617

Advisory und Proof-of-Concept für eine OS-Kommando-Injection in einem MCP-ffmpeg-Helfer, mit Ursachenanalyse, Detektionshinweisen und Gegenmaßnahmen für ein nicht gepatchtes npm-Paket.

Repository anzeigen
vor 1 TagNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-52617 — @sworddut/mcp-ffmpeg-helper: OS-Befehlsinjektion über ffmpeg-Tooloptionen

runFFmpegCommand übergibt einen aus MCP-Toolparametern aufgebauten String an spawn(…, { shell: true }), sodass Shell-Metazeichen in options, format, codec, pixelFormat oder extraOptions auf dem Host ausgeführt werden, auf dem der Server läuft.

⚠ Es existiert keine behobene Version

Zum Stand 2026-08-22 ist die neueste npm-Version 0.2.1, die betroffene Version, und das Sink ist weiterhin auf dem Standard-Branch des Repositorys vorhanden. Es gibt nichts, worauf man aktualisieren könnte. Siehe Mitigation für das, was Benutzer in der Zwischenzeit tun können.

Bedrohungsmodell

MCP-Toolargumente werden vom Angreifer beeinflusst. Sie werden von einem LLM aus dem Inhalt erzeugt, den der Agent verarbeitet — Dokumente, Webseiten, Toolausgaben —, sodass indirekte Prompt-Injektion dem Angreifer die Kontrolle über die Werte gibt, die ein Tool-Handler erhält. Ein Handler, der einen dieser Werte in eine Shell einspeist, verwandelt diesen Einfluss in Codeausführung auf dem Host, auf dem der MCP-Server läuft. Dies ist dasselbe Modell wie im Präzedenzfall aws-mcp-server / CVE-2026-5058.

Ein Medienkonvertierungs-Server ist ein besonders naheliegendes Ziel dafür: Die Dateien, deren Verarbeitung angefragt wird, sind genau die nicht vertrauenswürdigen Inhalte, die ein Agent anderswo aufgreift.

Ausführung

src/utils/ffmpeg.ts — der Befehl wird als String zusammengesetzt und die Shell wird explizit aktiviert:

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 }) führt den gesamten String über /bin/sh -c aus. Alles, was der Aufrufer zu command beigetragen hat, ist Shell-Syntax.

src/tools/handlers.ts erreicht diesen Helfer über drei Tools und interpoliert Parameter, die nie inhaltlich validiert werden:

ToolInjizierbare Parameter
convert_video

Nur inputPath und outputPath werden überhaupt geprüft, und die Zod-Schemas validieren den Typ (z.string()), nie den Inhalt — Metazeichen kommen also ungehindert durch.

Ein convert_video-Aufruf mit options gesetzt auf ; touch /tmp/marker ; erzeugt:

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

Reproduktion

poc/driver.mjs spricht MCP über stdio: Es initialisiert den Server, gibt einen tools/call für convert_video mit einem injizierten options-Wert ab und prüft auf eine Markierungsdatei. Das Payload ist ein harmloser 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

Erwartet bei einer betroffenen Version:

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

ffmpeg muss nicht installiert sein — der injizierte Befehl läuft in derselben /bin/sh -c-Zeichenkette, unabhängig davon, ob das führende Binary aufgelöst wird. Validierung am 2026-06-01 in einem isolierten Container, erneute Validierung am 2026-06-13, und am 2026-08-22 wurde das Sink erneut auf dem Standard-Branch bestätigt. Führen Sie es nur gegen Infrastruktur aus, zu deren Test Sie autorisiert sind.

Erkennung

  • Eine ffmpeg-Befehlszeile, die ;, &&, ||, |, ein Backtick oder $( enthält. Legitime ffmpeg-Aufrufe dieses Servers tun das nicht.
  • Ein sh -c-Prozess, dessen Befehlszeile mit ffmpeg beginnt und nach einem Trenner einen zweiten Befehl enthält — ein Signal im Prozessbaum (auditd, eBPF, Falco, EDR), das nicht von der Anwendungsprotokollierung abhängt.
  • Unerwartete Kindprozesse des MCP-Serverprozesses. ffmpeg und ffprobe sind zu erwarten; eine Shell, ein Interpreter oder ein Netzwerk-Client nicht.
  • Der Server protokolliert jeden Aufruf auf stderr als Running FFmpeg command: ffmpeg <command> — die einfachste Stelle, um einen injizierten Wert zu entdecken, sofern die Logs überhaupt gesammelt werden.
  • MCP-Protokolle von Tool-Aufrufen, in denen options, , , oder Shell-Metazeichen enthalten.

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

Mitigation

Es existiert keine gepatchte Version, daher bleiben Eingrenzung und Entfernung:

  • Die Nutzung des Pakets einstellen, wenn der Agent, den es bedient, nicht vertrauenswürdige Inhalte verarbeitet. Das ist die einzige vollständige Abhilfe, die es heute gibt.
  • Falls es bleiben muss, führen Sie es in einem Container oder einer VM als unprivilegierter Benutzer aus, mit einem schreibgeschützten Dateisystem abgesehen vom Medien-Arbeitsverzeichnis, ohne Anmeldeinformationen in seiner Umgebung und ohne Netzwerkausgang. Codeausführung verschafft dem Angreifer dann eine Sandbox statt des Hosts.
  • Setzen Sie es nicht über einen Netzwerk-Transport aus. Erst die reine stdio-Bereitstellung hält dies bei 7.8 statt 9.8.
  • Wickeln Sie den Server in eine eigene Schicht ein oder forken Sie ihn, um Shell-Metazeichen in den fünf oben genannten Parametern abzulehnen, bevor sie runFFmpegCommand erreichen.

Der Upstream-Fix besteht darin, shell: true zu entfernen und ffmpeg einen Argument-Vektor zu übergeben — spawn("ffmpeg", ["-i", inputPath, …]) — wobei dieses Array aus auf einer Allowlist stehenden format-, codec- und pixelFormat-Werten aufgebaut wird statt aus Freitext-Strings. Inhaltsvalidierung, nicht nur Zod-Typvalidierung, ist die zugrunde liegende Anforderung.

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

Zeitleiste

Referenzen

  • npm-Paket — https://www.npmjs.com/package/@sworddut/mcp-ffmpeg-helper
  • Repository — https://github.com/sworddut/mcp-ffmpeg-helper
  • Präzedenzfall für das MCP-Bedrohungsmodell — CVE-2026-5058 (aws-mcp-server)

Begleitende Advisories aus derselben Forschungsrunde: CVE-2026-52616, CVE-2026-52618.

Lizenz

MIT — siehe LICENSE.

Tool herunterladen
CVECVE-2026-52617
CWECWE-78 (Improper Neutralization of Special Elements used in an OS Command)
Paket@sworddut/mcp-ffmpeg-helper (npm)
Betroffen0.2.1 und früher — alle veröffentlichten Versionen
Behoben inkeine
CVSS v3.1AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 7.8 High (stdio-Transport). AV:N → 9.8 Critical, wenn der Server in einen Netzwerk-Transport eingebunden ist.
Gemeldet vons1ko (github.com/s1ko, [email protected])
CVE zugewiesen2026-07-13, MITRE CNA-LR
options
extract_audioformat
create_video_from_imagescodec, pixelFormat, extraOptions
format
codec
pixelFormat
extraOptions
DatumEreignis
2026-05-29Schwachstelle durch Quellcode-Prüfung des veröffentlichten Tarballs identifiziert
2026-06-01Dynamisch über MCP-stdio in einem isolierten Container validiert
2026-06-13Auf einem zweiten Host erneut validiert; das Repository hat kein Private Vulnerability Reporting aktiviert, und die package.json-Felder repository/bugs/homepage sind auf der github.com/yourusername-Vorlage belassen — es gibt keinen dokumentierten Sicherheitskontakt
2026-07-13MITRE CNA-LR weist CVE-2026-52617 zu, s1ko als Entdecker genannt
2026-08-22Sink auf dem Standard-Branch erneut bestätigt; die neueste npm-Version ist weiterhin 0.2.1; dieser Bericht veröffentlicht