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-32023 — PoC & Exploit für CVE-2025-32023 / PlaidCTF 2025 „Zerodeo“ | Kitploit
Tools/GitHubGitHub/leesh3288/cve-2025-32023
SpeicherforensikSchwachstellenanalyseExploitationReverse EngineeringCTFPayload-EntwicklungBinary-Exploitation
GitHubleesh3288/cve-2025-32023

CVE-2025-32023

PoC & Exploit für CVE-2025-32023 / PlaidCTF 2025 „Zerodeo“

Repository anzeigen
21640vor 1 JahrVon Kitploit 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-32023

PoC & Exploit für CVE-2025-32023 (GHSA-rp2m-q4j6-gr43) / PlaidCTF 2025 "Zerodeo"

Reproduktion / Patch

Getestet gegen redis:7.4.2-alpine3.21@sha256:02419de7eddf55aa5bcf49efb74e88fa8d931b4d77c07eff8a6b2144472b6952

Betrifft Redis-Versionen >= 2.8. Behoben in 8.0.3, 7.4.5, 7.2.10, 6.2.19, siehe redis/redis@5018874.

Bug

HyperLogLog ist in Redis lediglich ein weiterer String mit eigenen Kodierungen. Das Iterieren über eine spärliche HLL-Kodierung erfordert das Aufsummieren der Lauflängen jeder spärlichen Darstellung, was die in int i gezählte Gesamtlänge bei der Verarbeitung eines fehlerhaften HLL in einen negativen Wert überlaufen lassen kann. Dies ermöglicht es einem Angreifer, negative Offsets in der HLL-Struktur zu überschreiben, was je nach Herkunft der HLL-Struktur zu einem Out-of-Bounds-Schreibzugriff auf dem Stack/Heap führt (z. B. verwendet hllMerge() eine auf dem Stack allokierte Struktur, hllSparseToDense() eine auf dem Heap allokierte).

Siehe den Patch-Auszug unten:

root@kitploit:~
 int hllMerge(uint8_t *max, robj *hll) {
     struct hllhdr *hdr = hll->ptr;
     int i;

     if (hdr->encoding == HLL_DENSE) {
         hllMergeDense(max, hdr->registers);
      } else {
         uint8_t *p = hll->ptr, *end = p + sdslen(hll->ptr);
         long runlen, regval;
+        int valid = 1;
 
         p += HLL_HDR_SIZE;
         i = 0;
         while(p < end) {
             if (HLL_SPARSE_IS_ZERO(p)) {
                 runlen = HLL_SPARSE_ZERO_LEN(p);
+                if ((runlen + i) > HLL_REGISTERS) { /* Overflow. */
+                    valid = 0;
+                    break;
+                }
                 i += runlen;
                 p++;
             } else if (HLL_SPARSE_IS_XZERO(p)) {
                 runlen = HLL_SPARSE_XZERO_LEN(p);
+                if ((runlen + i) > HLL_REGISTERS) { /* Overflow. */
+                    valid = 0;
+                    break;
+                }
                 i += runlen;
                 p += 2;
             } else {
                 runlen = HLL_SPARSE_VAL_LEN(p);
                 regval = HLL_SPARSE_VAL_VALUE(p);
-                if ((runlen + i) > HLL_REGISTERS) break; /* Overflow. */
+                if ((runlen + i) > HLL_REGISTERS) { /* Overflow. */
+                    valid = 0;
+                    break;
+                }
                 while(runlen--) {
                     if (regval > max[i]) max[i] = regval;
                     i++;
                }
                 p++;
             }
         }
-        if (i != HLL_REGISTERS) return C_ERR;
+        if (!valid || i != HLL_REGISTERS) return C_ERR;
     }
     return C_OK;
 }

Exploit

Der Exploit nutzt die üblichen Redis-Pwnables-Techniken:

  1. Ein sds-Objekt auf dem jemalloc-Heap beschädigen, um seine Länge zu vergrößern
  2. embstr-Objekte sprayen, um sie zu einem gefälschten Modulobjekt zu korrumpieren
  3. Den Heap mit dem beschädigten sds-Objekt ausgeben, um das Ziel-embstr-Objekt zu finden und Adressen zu leaken
  4. Ein gefälschtes Modulobjekt auf dem Ziel-embstr-Objekt erstellen
  5. Das gefälschte Modulobjekt löschen, wodurch der Destruktor ausgelöst wird und RCE erlangt wird
Tool herunterladen