
run-code MCP-ToolProof-of-Concept-Exploit für CVE-2026-5029 — eine kritische, nicht authentifizierte Remote-Codeausführungs-Schwachstelle im Code Runner MCP Server, ausgelöst über das
run-codeMCP-Tool, wenn der Server mit--transport httpausgeführt wird.
Code Runner MCP Server legt bei Start mit dem Flag --transport http einen JSON-RPC-Endpunkt /mcp auf Port 3088 offen. Dieser Endpunkt ist ohne jegliche Authentifizierung erreichbar — kein API-Schlüssel, kein Sitzungstoken, keine Origin-Prüfung.
Jeder nicht authentifizierte Angreifer, der den Port erreichen kann, kann direkt das run-code-MCP-Tool aufrufen, das beliebigen Quellcode und eine Sprachkennung akzeptiert, in eine temporäre Datei schreibt und ihn über child_process.exec() mit dem entsprechenden Interpreter (bash, python, powershell und 30+ weitere) ausführt.
Da in keiner Phase eine Bereinigung des Parameters code erfolgt, führt dies zu vollständiger, nicht authentifizierter Remote-Codeausführung mit den Rechten des Prozesses, der den MCP-Server ausführt.
┌──────────┐ JSON-RPC tools/call ┌───────────────────────┐ exec() ┌──────────┐
│ Attacker │ ──── run-code tool ─────▶│ /mcp (port 3088) │ ─────────▶ │ RCE │
│ │ (no auth needed) │ Code Runner MCP │ │ on Host │
└──────────┘ └───────────────────────┘ └──────────┘
/mcp-Endpunkt verbinden und verfügbare MCP-Tools aufzählenrun-code-Tools (code, languageId) abrufentools/call-JSON-RPC-Anfrage mit Angreifer-kontrolliertem code sendencode in eine temporäre Datei und führt ihn über den ausgewählten Interpreter aus.
├── exploit.py # 🎯 Interaktive RCE-Exploit-Shell (Rich-basierte Terminal-UI)
└── README.md # 📖 Du bist hier
exploit.py — Interaktiver ExploitDas primäre Exploit-Skript, entwickelt für den professionellen Einsatz in Sicherheitsbewertungen und Fallstudien. Es verbindet sich mit dem Ziel-MCP-Server und wechselt in eine interaktive Shell, in der jeder Befehl live über das verwundbare run-code-Tool ausgeführt wird.
Zu den Funktionen gehören:
-l (Standard: shellscript)pip-Paketmanager# Repository klonen
git clone https://github.com/0x00phantom-hat/CVE-2026-5029-Exploit.git
cd CVE-2026-5029-RCE-Exploit
# Abhängigkeiten installieren
pip install fastmcp rich
# In eine interaktive RCE-Shell wechseln (Standard: shellscript)
python3 exploit.py -u http://TARGET:3088/mcp
# Einen bestimmten Sprachinterpreter verwenden
python3 exploit.py -u http://TARGET:3088/mcp -l python
# Alle Sprachen auflisten, für die der MCP-Server Unterstützung bewirbt
python3 exploit.py -u http://TARGET:3088/mcp --available
# Prüfen, welche Sprachlaufzeiten tatsächlich auf dem Ziel installiert sind
python3 exploit.py -u http://TARGET:3088/mcp --installed -v
# Hilfemenü anzeigen
python3 exploit.py -h
Nach der Verbindung wechselt der Exploit in eine interaktive Eingabeaufforderung:
PhantomHat-MCP@Exploit-CVE-2026-5029 $ id
Gib exit ein, um die Sitzung zu beenden.
--transport http nicht auf einer netzwerkerreichbaren Schnittstelle ausführen — beim Standardtransport stdio bleiben127.0.0.1 binden und hinter einen authentifizierten Reverse-Proxy oder ein VPN setzenrun-code-Aufrufe und ungewöhnliche KindprozesseDieses Tool wird ausschließlich für autorisierte Sicherheitstests und zu Bildungszwecken bereitgestellt.
Unautorisierter Zugriff auf Computersysteme ist nach Gesetzen wie dem Computer Fraud and Abuse Act (CFAA), dem Computer Misuse Act und ähnlichen Gesetzen weltweit illegal. Der Autor übernimmt keine Haftung für Missbrauch dieser Software.
Verwende dieses Tool nur gegen Systeme, die dir gehören oder für die du eine ausdrückliche schriftliche Genehmigung zum Testen hast.
Autor: Phantom Hat
Nur für autorisierte Penetrationstests und Sicherheitsforschung.
| Property | Detail |
|---|
| CVE-Kennung | CVE-2026-5029 |
| CVSS-Score | 8.7 / 10 — Hoch |
| CWE | CWE-306 — Fehlende Authentifizierung für kritische Funktion |
| Betroffenes Produkt | Code Runner MCP Server |
| Betroffene Versionen | (Ohne Patch) Alle Versionen, die das run-code-Tool über --transport http bereitstellen |
| Authentifizierung | Keine erforderlich (nicht authentifiziert) |
| Patch-Status | Nicht behoben |
| Entdeckt von | Phantom Hat |
| Flag | Beschreibung | Standard |
|---|
-u, --url | (Erforderlich) MCP-Server-URL | — |
-l, --language | Sprache für die Codeausführung | shellscript |
-a, --available | Alle unterstützten Sprachen auflisten | Flag |
-i, --installed | Installierte Sprachlaufzeiten auf dem Ziel prüfen | Flag |
-v, --verbose | Ausführlicher Ausgabemodus | Flag |
-h, --help | Hilfemenü anzeigen | — |
| Phase | Name | Beschreibung |
|---|
| 1 | 🔍 Enumeration | Mit /mcp verbinden und verfügbare MCP-Tools aufzählen |
| 2 | 🧪 Schemaerkennung | Das Eingabeschema von run-code (code, languageId) bestätigen |
| 3 | 💣 Exploit-Zustellung | Eine manipulierte tools/call-Anfrage mit Angreifer-kontrolliertem Code senden |
| 4 | 🚀 Interaktive Ausführung | In eine Live-Shell wechseln — jeder Befehl läuft auf dem Zielsystem |