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-14669 — Proof-of-Concept-Exploit für CVE-2026-14669, eine Heap-Pufferüberlauf-Schwachstelle in der to_char()-Zeitzonenabkürzung von PostgreSQL, die durch Informationsleck und ROP-Kette RCE ermöglicht; enthält Docker-Lab und automatisiertes PoC. | Kitploit
Tools/GitHubGitHub/hackspeak/cve-2026-14669
SchwachstellenanalyseExploitationPenetrationstestsPayload-EntwicklungDatenbanksicherheitBinary-ExploitationLabs & Praxis
GitHubhackspeak/cve-2026-14669

CVE-2026-14669

Proof-of-Concept-Exploit für CVE-2026-14669, eine Heap-Pufferüberlauf-Schwachstelle in der to_char()-Zeitzonenabkürzung von PostgreSQL, die durch Informationsleck und ROP-Kette RCE ermöglicht; enthält Docker-Lab und automatisiertes PoC.

Repository anzeigen
11vor 1 TagNoch 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-14669 - PostgreSQL to_char() Timezone Abbreviation Heap Buffer Overflow

Die PostgreSQL-Funktion to_char() weist bei der Verarbeitung der Zeitzonenformatierung eine Heap-Pufferüberlauf-Schwachstelle auf. Ein Angreifer kann durch das Setzen einer überlangen POSIX-Zeitzonenabkürzung einen Out-of-Bounds-Schreibzugriff auf einen festen 25-Byte-Puffer auslösen und in Kombination mit einem Informationsleck und einer ROP-Kette eine Remote-Code-Ausführung erreichen.

Schwachstelleninformationen

  • CVE-Kennung: CVE-2026-14669
  • CVSS-Score: 8.8 (Hoch)
  • Schwachstellentyp: Heap-Pufferüberlauf → Remote-Code-Ausführung
  • Betroffene Komponente: Funktion to_char(timestamptz) von PostgreSQL
  • Entdeckungsteam: V12 Security

Betroffene Versionen

PostgreSQL-SerieBetroffene Versionen
18.x18.0 – 18.5
17.x17.0 – 17.10
16.x16.0 – 16.14
15.x15.0 – 15.18
14.x14.0 – 14.23

Behobene Versionen

  • PostgreSQL 18.6+
  • PostgreSQL 17.11+
  • PostgreSQL 16.15+
  • PostgreSQL 15.19+
  • PostgreSQL 14.24+

Ursache der Schwachstelle

Der Verarbeitungspfad DCH_TZ / DCH_tz in formatting.c verwendet einen festen 25-Byte-Stack-Puffer zum Speichern von Zeitzonenabkürzungen, ohne die Eingabelänge zu prüfen. Überschreitet die Zeitzonenabkürzung 24 Byte, schreibt strcpy() außerhalb der Grenzen in den Heap-Speicher.

Auslösepfad:

root@kitploit:~
SET TIME ZONE '<超长缩写>+00';
SELECT to_char(now()::timestamptz, 'TZ');
  ↓
DCH_to_char() → DCH_from_char_action()
  ↓
strcpy(buf, tmtcTzn(...))  ← 堆溢出

Voraussetzungen für die Ausnutzung

  • Beliebige gültige Datenbank-Anmeldedaten (geringste Berechtigung auf USAGE-Ebene)
  • Über TCP erreichbarer Datenbank-Port
  • Möglichkeit zur Ausführung von SQL-Anweisungen

Vollständige Exploit-Kette

Das PoC von V12 Security umfasst drei Phasen:

Phase 1: Informationsleck

Durch den Heap-Überlauf werden benachbarte Heap-Objekte beschädigt, und die PIE-Basis sowie Heap-Zeiger werden geleakt, um ASLR zu umgehen.

Phase 2: Aufbau der ROP-Kette

Mithilfe von Large Objects oder bytea-Feldern wird eine Kette aus ROP-Gadgets auf dem Heap angeordnet.

Phase 3: Übernahme des Kontrollflusses

Ein zweiter Überlauf überschreibt Funktionszeiger auf dem Heap und springt zur ROP-Kette, um beliebige Befehle (mit den Rechten des postgres-Benutzers) auszuführen.

PoC-Dateien

  • poc.py - Vollständiges Exploit-Skript (210 Zeilen, für PostgreSQL 19beta1)
  • requirements.txt - Python-Abhängigkeiten (psycopg, pwntools)
  • docker-compose.yml - Testumgebung für die Schwachstelle

Verwendung

1. Testumgebung starten

root@kitploit:~
docker-compose up -d

Warten, bis der Container vollständig gestartet ist (Health-Check erfolgreich):

root@kitploit:~
docker logs pg-tzlab

2. Abhängigkeiten installieren

root@kitploit:~
pip install -r requirements.txt

3. PoC ausführen

root@kitploit:~
python3 poc.py

Standardmäßig wird eine Verbindung zu 127.0.0.1:55432 hergestellt, Benutzername postgres, Passwort postgres.

Nach erfolgreicher Ausnutzung ist die Ausgabe der Befehlsausführung in den Container-Logs sichtbar:

root@kitploit:~
docker logs pg-tzlab | grep PWNED

4. Benutzerdefinierte Konfiguration

Bearbeiten Sie die Konstanten in poc.py:

  • HOST, PORT - Zieladresse
  • DEFAULT_COMMAND - der auszuführende Befehl

⚠️ Wichtig: Dieses PoC enthält hartcodierte Offset-Adressen für einen bestimmten Build (Docker-Image postgres:19beta1, sha256:a6bdd01...). Für andere Versionen müssen die Gadgets neu lokalisiert werden.

Gegenmaßnahmen

  1. Sofort aktualisieren auf eine behobene Version (am effektivsten)
  2. Netzwerkisolierung: Den Datenbank-Port nur für vertrauenswürdige Hosts freigeben
  3. Konten minimieren: Nicht benötigte Konten entfernen und starke Passwörter erzwingen
  4. Überwachung und Alarmierung: Überlange SET TIME ZONE-Anweisungen (> 50 Zeichen) überwachen

Haftungsausschluss

⚠️ Dieses PoC dient ausschließlich der Sicherheitsforschung, der Schwachstellenverifizierung und defensiven Tests.

  • Bitte nur in einer wegwerfbaren Testumgebung (Docker-Lab) ausführen
  • Nicht gegen nicht autorisierte oder Produktionsumgebungen verwenden
  • Die Ausnutzung kann zum Absturz des Zielserver-Prozesses oder zur Übernahme des Kontrollflusses führen

Durch die Verwendung dieses PoC erklären Sie sich damit einverstanden, die lokalen Gesetze und Vorschriften sowie die Autorisierungsgrenzen des Zielsystems einzuhalten.

Referenzlinks

  • Offizielles PostgreSQL-Sicherheitsbulletin
  • PostgreSQL-Versionshinweise
  • Upstream-Fix-Commit
  • Technische Analyse von V12 Security
  • Original-PoC-Repository

Originalautor

  • Original-PoC: V12 Security Team
  • Original-Repository: https://github.com/v12-security/pocs
  • Lizenz: Das Upstream-Repository enthält keine LICENSE-Datei; dieses Repository verwendet die MIT License
  • Dieses Repository: Gespiegelte Distributionsversion mit Namensnennung der Originalautoren
Tool herunterladen