Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 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
40vor 1 MonatNoch 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-Tool-Optionen

runFFmpegCommand übergibt einen String, der aus MCP-Tool-Parametern zusammengesetzt wird, an spawn(…, { shell: true }), sodass Shell-Metazeichen in options, format, codec, pixelFormat oder extraOptions auf dem Host ausgeführt werden, der den Server betreibt.

⚠ Es existiert keine korrigierte Version

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

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 = 8.4 High (stdio-Transport). AV:N → 9.8 Critical, wenn der Server in einen Netzwerk-Transport eingebettet wird.
Gemeldet vons1ko (github.com/s1ko, [email protected])
CVE zugewiesen2026-07-13, MITRE CNA-LR

Bedrohungsmodell

MCP-Tool-Argumente werden von Angreifern beeinflusst. Sie werden von einem LLM aus dem Inhalt erzeugt, den der Agent verarbeitet — Dokumente, Webseiten, Tool-Ausgaben —, sodass indirekte Prompt-Injection einen Angreifer die Kontrolle über die Werte erlangen lässt, die ein Tool- Handler empfängt. Ein Handler, der einen dieser Werte in eine Shell einspeist, verwandelt diesen Einfluss in Codeausführung auf dem Host, der den MCP-Server betreibt. Dies ist dasselbe Modell wie im Präzedenzfall aws-mcp-server / CVE-2026-5058.

Ein Medienkonvertierungsserver ist ein besonders naheliegendes Ziel dafür: Die Dateien, deren Verarbeitung von ihm verlangt wird, sind genau der nicht vertrauenswürdige Inhalt, den ein Agent von anderswo aufnimmt.

Ausführung

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

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 die gesamte Zeichenkette durch /bin/sh -c aus. Alles, was der Aufrufer zu command beigetragen hat, ist Shell-Syntax.

src/tools/handlers.ts erreicht diesen Helper von drei Tools aus und interpoliert Parameter, die niemals auf ihren Inhalt geprüft werden:

ToolInjizierbare Parameter
convert_videooptions
extract_audioformat
create_video_from_imagescodec, pixelFormat, extraOptions

Nur inputPath und outputPath werden überhaupt geprüft, und die Zod-Schemas validieren den Typ (z.string()), niemals den Inhalt — so gelangen Metazeichen unmittelbar durch.

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

/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, sendet einen tools/call für convert_video mit einem injizierten options-Wert und prüft auf eine Marker-Datei. Die Payload ist ein harmloses touch.

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

Auf einer betroffenen Version wird Folgendes erwartet:

==== 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 unabhängig davon, ob die führende Binärdatei aufgelöst wird, in derselben /bin/sh -c-Zeichenkette. Validiert am 2026-06-01 in einem isolierten Container, erneut validiert am 2026-06-13, und die Senke wurde am 2026-08-22 erneut als im Standard-Branch vorhanden bestätigt. Führe dies nur gegen Infrastruktur aus, für deren Test du autorisiert bist.

Erkennung

  • Eine ffmpeg-Kommandozeile, die ;, &&, ||, |, einen Backtick oder $( enthält. Legitime ffmpeg-Aufrufe von diesem Server tun das nicht.
  • Ein sh -c-Prozess, dessen Kommandozeile mit ffmpeg beginnt und nach einem Trennzeichen einen zweiten Befehl enthält — ein Prozessbaum-Signal (auditd, eBPF, Falco, EDR), das nicht von Anwendungs-Logging abhängt.
  • Unerwartete Kindprozesse des MCP-Server-Prozesses. 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>, was der günstigste Ort ist, um einen injizierten Wert zu entdecken, sofern die Logs überhaupt gesammelt werden.
  • MCP-Tool-Call-Logs, in denen options, format, codec, pixelFormat oder extraOptions Shell-Metazeichen enthalten.

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

Gegenmaßnahmen

Es existiert keine gepatchte Version, daher sind die Optionen Eindämmung und Entfernung:

  • Verwende das Paket nicht mehr, wenn der Agent, dem es dient, irgendwelche nicht vertrauenswürdigen Inhalte verarbeitet. Dies ist die einzige heute verfügbare vollständige Gegenmaßnahme.
  • Wenn es bleiben muss, betreibe es in einem Container oder einer VM als unprivilegierter Benutzer, mit einem schreibgeschützten Dateisystem außer dem Arbeitsverzeichnis für Medien, ohne Anmeldedaten in seiner Umgebung und ohne Netzwerk-Egress. Codeausführung verschafft dem Angreifer dann eher eine Sandbox als den Host.
  • Stelle es nicht über einen Netzwerk-Transport bereit. Die stdio-only-Bereitstellung ist es, die dies bei 8.4 statt 9.8 hält.
  • Ummantle oder forke den Server, um Shell-Metazeichen in den fünf oben aufgeführten Parametern abzulehnen, bevor sie runFFmpegCommand erreichen.

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

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

Zeitleiste

DatumEreignis
2026-05-29Schwachstelle durch Quellcode-Review 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 Felder repository/bugs/homepage in package.json sind auf der Vorlage github.com/yourusername belassen, sodass kein dokumentierter Sicherheitskontakt existiert
2026-07-13MITRE CNA-LR weist CVE-2026-52617 zu, s1ko als Entdecker genannt
2026-08-22Senke im Standard-Branch erneut bestätigt; npm latest weiterhin 0.2.1; dieser Write-up veröffentlicht

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 demselben Recherchedurchgang: CVE-2026-52616, CVE-2026-52618.

Lizenz

Tool herunterladen