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-2005 — PoC for CVE-2026-2005 | Kitploit
Tools/GitHubGitHub/var77/cve-2026-2005
Privilege EscalationMemory ForensicsVulnerability AnalysisExploitationLearning & EducationDatabase SecurityBinary Exploitation
GitHubvar77/cve-2026-2005

CVE-2026-2005

PoC for CVE-2026-2005

Repository anzeigen
265vor 3 MonatenVon 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-2026-2005 - PostgreSQL pgcrypto Heap-Überlauf-Exploit

PoC-Exploit für einen heap-basierten Pufferüberlauf in der PGP-Sitzungsschlüssel-Parsing des PostgreSQL pgcrypto-Extensions, der zu beliebigem Lesen/Schreiben von Speicher und Privilegieneskalation zum Superuser führt.

Vollständige technische Details finden Sie im Zeroday Cloud Advisory.

Demo

PoC Demo

Verwendung

1. PostgreSQL kompilieren

Klonen und kompilieren Sie PostgreSQL aus dem anfälligen Commit, damit die Symbol-Offsets der Binärdatei exakt übereinstimmen. Der Exploit ermittelt die ASLR-Basis durch Abgleich von geleckten Pointern mit ELF-Symbol-Offsets – verschiedene Builds oder Versionen haben unterschiedliche Offsets und werden fehlschlagen.

root@kitploit:~
git clone https://github.com/postgres/postgres.git
cd postgres
git checkout 4b324845ba5d24682b9b3708a769f00d160afbd7
./configure \
    --prefix="$HOME/projects/pg/pgsql" \
    --with-libxml \
    --with-libxslt \
    --enable-debug \
    --with-ssl=openssl
make -j$(nproc)
make install-world-bin

2. Python-Abhängigkeiten installieren

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

3. Den Exploit ausführen

root@kitploit:~
python poc.py \
    --binary "$HOME/projects/pg/pgsql/bin/postgres" \
    --dbname test-db \
    --host 127.0.0.1 \
    --port 5432 \
    --user test-user \
    --password secret \
    --cmd id

Optionen

Exploit-Ablauf

Der Exploit läuft in 7 Schritten ab:

  1. Heap-Pointer-Leak – Eine präparierte PGP-Nachricht beschädigt den malloc-Chunk-Header des mdst-Puffers. Wenn PostgreSQL pfree() auf den beschädigten Chunk aufruft, gibt der Allokator eine Fehlermeldung mit der Pointer-Adresse aus, wodurch die Heap-Position von mdst->data preisgegeben wird.

  2. Beliebiges Lesen – Ein zweiter Überlauf überschreibt mdst->data, um auf (leaked_ptr - 0x10000) zu zeigen. Nach der Entschlüsselung gibt mbuf_steal_data() den Inhalt an dieser Adresse als entschlüsselte Ausgabe zurück und gibt so Heap-Speicher preis, der möglicherweise veraltete Code-Pointer enthält.

  3. Pointer-Scan – Der Hex-Dump wird nach 8-Byte-Little-Endian-Werten durchsucht, die wie Code-Adressen aussehen (>= 0x500000000000), aber nicht im Heap-Bereich liegen. Dies sind Kandidaten für PIE (Position Independent Executable)-Pointer.

  4. PIE-Basis-Abstimmung – Jede Kandidatenadresse wird gegen die ELF-Symbol-Offsets der Postgres-Binärdatei getestet. Für jedes Paar (addr - sym_offset), bei dem der Seiten-Offset übereinstimmt, wird eine Stimme abgegeben. Kandidaten mit 10+ Stimmen bleiben erhalten; die kleinste Basis (PIE ist das am niedrigsten gemappte ELF-Segment), sortiert nach Stimmen, ist der beste Kandidat.

  5. PIE-Basis-Validierung – Mithilfe des beliebigen Lese-Primitivs liest der Exploit an der Adresse und vergleicht sie mit der bekannten OID der Sitzung. Eine Übereinstimmung bestätigt die PIE-Basis.

Voraussetzungen

  • Python 3.10+
  • psycopg2-binary, pwntools, pycryptodome (pip install -r requirements.txt)
  • PostgreSQL, kompiliert aus dem anfälligen Commit (4b324845) mit aktiviertem pgcrypto

Haftungsausschluss

Dieser Proof of Concept dient nur zu Bildungs- und Verteidigungsforschungszwecken. Verwenden Sie ihn nur gegen Systeme, die Sie besitzen oder für die Sie ausdrücklich berechtigt sind, Tests durchzuführen.

Referenzen

  • CVE-2026-2005: PostgreSQL pgcrypto Integer Overflow to RCE
Tool herunterladen
ArgumentStandardBeschreibung
--binary(Postgres-Binärdatei)Pfad zur Postgres-Binärdatei für die Symbolextraktion
--dbnamepostgresName der Zieldatenbank
--hostlocalhostPostgreSQL-Host
--port5432PostgreSQL-Port
--userpostgresDatenbankbenutzer
--password(leer)Datenbankpasswort
--cmdwhoamiOS-Befehl, der nach der Privilegieneskalation ausgeführt werden soll
--gdb(Flag)GDB über tmux an der Überlaufstelle anhängen
CurrentUserId
(candidate_base + current_user_offset)
  • Beliebiges Schreiben – Der Überlauf beschädigt sowohl msrc- als auch mdst-MBuf-Header. Gefälschte msrc->data/read_pos zeigen auf ein eingebettetes sym-encrypted-Paket, das den verschlüsselten Superuser-OID (10) enthält. Gefälschte mdst->data zeigen auf CurrentUserId - 4 (die -4 berücksichtigt SET_VARSIZE in pgp-pgsql.c:533, das die Ausgabelänge in die ersten 4 Bytes schreibt).

  • Privilegieneskalation – Mit CurrentUserId, das auf 10 (Bootstrap-Superuser) überschrieben wurde, führt COPY FROM PROGRAM den angegebenen OS-Befehl als Postgres-Systembenutzer aus.