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-23479-Redis-UAF-Proof-of-Concept — Proof of Concept mit GDB-gestützter Exploitation (nur für Bildungs-/Laborzwecke) | Kitploit
Tools/GitHubGitHub/rizlmaulanaa/cve-2026-23479-redis-uaf-proof-of-concept
SchwachstellenanalyseExploitationDebuggerLernen & BildungDatenbanksicherheitBinary-ExploitationLabs & Praxis
GitHubrizlmaulanaa/cve-2026-23479-redis-uaf-proof-of-concept

CVE-2026-23479-Redis-UAF-Proof-of-Concept

Proof of Concept mit GDB-gestützter Exploitation (nur für Bildungs-/Laborzwecke)

Repository anzeigen
51vor 20 TagenNoch 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-23479 – Redis UAF Proof of Concept

License Python Docker CVE PoC

Use-After-Free in Redis unblockClientOnKey() führt zu Remote Code Execution
Proof of Concept mit GDB-unterstützter Ausnutzung (nur für Bildungs- / Laborzwecke)


📖 Überblick

CVE-2026-23479 ist eine kritische Use-After-Free (UAF)-Schwachstelle in Redis-Versionen 7.2.0 bis 8.6.2.
Der Fehler befindet sich in unblockClientOnKey(), das processCommandAndResetClient() aufruft, ohne dessen Rückgabewert zu prüfen.
Wenn der Client während dieses Aufrufs freigegeben wird (z. B. durch Eviction), arbeitet der Aufrufer weiter mit einem hängenden Zeiger → UAF.
Ein Angreifer, der den Heap nach der Freigabe formen kann, könnte beliebige Codeausführung erreichen.

Dieses Repository stellt einen GDB-unterstützten PoC bereit, der:

  • den exakten verwundbaren Codepfad auslöst
  • die UAF nachweist, indem er absichtlich einen Absturz verursacht (freeClient()-Aufruf)
  • beliebige Befehlsausführung demonstriert, indem er einen system()-Aufruf an derselben Stelle injiziert

⚠️ Wichtig: Dies ist kein weaponisierter Exploit. Er verwendet GDB in einem privilegierten Docker-Container, um zu simulieren, was ein echter Angreifer nach erfolgreicher Ausnutzung der Schwachstelle erreichen könnte. Verwenden Sie ihn nur in Ihrem eigenen Labor oder auf Systemen, für die Sie ausdrücklich eine Testgenehmigung haben.

🎥 PoC-Video

https://github.com/user-attachments/assets/5ce3aff0-e21c-4ad4-8a0b-50b57bdcf9ea


✨ Funktionen

  • 🧪 Vier Betriebsmodi – crash, gdb, rce, full
  • 🐳 Docker-basiert – kein verwundbares Redis muss auf dem Host installiert werden
  • 🔍 Automatische Versionserkennung – prüft, ob das Ziel im betroffenen Bereich liegt
  • 🧹 Selbstbereinigend – beendet veraltete GDB-Sitzungen vor jedem Lauf
  • 🎯 Flexibler Containername – beliebigen Container über --container übergeben
  • 📦 Einzelne Python-Datei – keine Abhängigkeiten außer der Standardbibliothek

🧠 Funktionsweise

  1. Ein Opfer blockieren – Ein XREAD BLOCK-Befehl lässt den Client auf Stream-Daten warten.
  2. GDB anhängen – GDB hängt sich an den Redis-Prozess (pid 1) im Container an.
  3. Einen Breakpoint setzen auf processCommandAndResetClient – die Funktion, die aufgerufen wird, wenn der blockierte Client erneut verarbeitet wird.
  4. Unblock auslösen – Ein XADD auf denselben Stream weckt das Opfer auf.
  5. Beim Erreichen des Breakpoints:
    • gdb-Modus: ruft freeClient($rdi) auf → verursacht absichtlich einen SIGSEGV → beweist UAF.
    • rce-Modus: ruft system("Ihr Befehl") auf → führt beliebige Shell-Befehle als Redis-Benutzer aus (root standardmäßig).
  6. Überprüfen – das Skript prüft, ob die erwartete Proof-Datei existiert (RCE) oder ob Redis abgestürzt ist (UAF).

Der Breakpoint wird jedes Mal ausgelöst, wenn ein blockierter Client entblockiert wird, was zeigt, dass derselbe Codepfad, der die UAF enthält, auch Codeausführung ermöglicht.


📋 Betroffene Versionen

BranchVerwundbarer Bereich
7.27.2.0 – 7.2.13
7.47.4.0 – 7.4.8
8.28.2.0 – 8.2.5
8.48.4.0 – 8.4.2
8.68.6.0 – 8.6.2

Das Skript parst automatisch die Redis-Version und meldet, ob sie verwundbar ist.


🐳 Voraussetzungen

  • Docker installiert und laufend
  • Python 3.8+ (nur Standardbibliothek verwendet)
  • Ein Redis 8.6.2 Docker-Image, das apt verwendet (z. B. das offizielle redis:8.6.2)
  • Der Container muss mit --privileged erstellt werden (erforderlich für ptrace)

⚙️ Einrichtung

1. Repository klonen

git clone https://github.com/YOUR_USERNAME/CVE-2026-23479-PoC.git
cd CVE-2026-23479-PoC

2. Einen verwundbaren Redis-Container starten

docker run -d --name redis-vuln-local --privileged -p 6379:6379 \
  redis:8.6.2 redis-server --protected-mode no

3. GDB im Container installieren

docker exec -u root redis-vuln-local bash -c "
  apt-get update && apt-get install -y gdb binutils procps
"

4. Überprüfen

docker exec redis-vuln-local gdb --version
redis-cli -h 127.0.0.1 -p 6379 ping   # should return PONG

🚀 Verwendung

python3 redisexp.py <target> -p <port> -m <mode> --container <name> [--cmd "command"]

Modi

ModusBeschreibung
crashVersucht, UAF über Speicherdruck auszulösen (kein GDB erforderlich). Redis kann abstürzen, aber nicht garantiert.
gdbHängt GDB an und ruft freeClient() am Breakpoint auf → erzwingt einen SIGSEGV (beweist UAF).
rceHängt GDB an und ruft system(cmd) am Breakpoint auf → führt einen Shell-Befehl im Container aus.
fullFührt zuerst crash aus; wenn Redis nicht abstürzt, wird auf gdb zurückgegriffen.

Optionen

ArgumentStandardBeschreibung
target(erforderlich)IP-Adresse des Redis-Servers
-p, --port6379Redis-Port
-m, --modefullEiner von crash, gdb, rce, full
--containerenv-redis-vuln-1Docker-Containername
--cmdid > /tmp/pwned_by_cveBefehl, der im rce-Modus ausgeführt wird

📚 Schritt-für-Schritt-Beispiele

Hinweis: Alle Befehle werden vom Host-Rechner ausgeführt, nicht im Docker-Container.

1. UAF über GDB nachweisen

python3 redisexp.py 127.0.0.1 -p 6379 -m gdb --container redis-vuln-local

Erwartete Ausgabe (Auszug)

[+] Victim blocked on XREAD
[+] GDB script deployed
[*] Triggering unblock via XADD...
[+] SIGSEGV in processCommand after freeClient()
[+] This confirms the UAF code path in unblockClientOnKey()

Redis wird nach dem Segmentation Fault abstürzen.

Container neu starten:

docker start redis-vuln-local

2. Remote Code Execution (RCE) erreichen

Redis neu starten, um einen sauberen Zustand sicherzustellen:

docker restart redis-vuln-local

Exploit ausführen:

python3 redisexp.py 127.0.0.1 -p 6379 -m rce \
  --cmd "touch /tmp/pwned" \
  --container redis-vuln-local

Proof-Datei überprüfen:

docker exec redis-vuln-local ls -l /tmp/pwned

Bei Erfolg existiert die Datei, was beweist, dass:

system("touch /tmp/pwned");

im Redis-Container ausgeführt wurde.


3. UAF ohne GDB auslösen (Speicherdruck)

python3 redisexp.py 127.0.0.1 -p 6379 -m crash --container redis-vuln-local

Wenn Redis unerwartet beendet wird (der Container läuft nicht mehr), wurde die UAF wahrscheinlich ausgelöst.

Neu starten mit:

docker start redis-vuln-local

4. Den vollständigen Test ausführen

python3 redisexp.py 127.0.0.1 -p 6379 -m full --container redis-vuln-local

Dieser Modus:

  1. Versucht den Speicherdruck-Absturz.
  2. Greift auf die GDB-unterstützte Methode zurück, wenn Redis überlebt.

📸 Beispielausgabe (RCE-Modus)

============================================================
  CVE-2026-23479 Redis UAF Exploit PoC
============================================================
[*] Target: 127.0.0.1:6379
[*] Version: 8.6.2
[+] VULNERABLE

[*] Method: RCE via UAF code path injection
    Exploits CVE-2026-23479 UAF in unblockClientOnKey()
    Breakpoint on processCommandAndResetClient -> system()
    Command: touch /tmp/pwned
Tool herunterladen