
Funktionsfähiger POC von CVE-2026-6664, geschrieben von Sonnet 4.6
Dieses Repository enthält einen lokalen Proof of Concept für einen PgBouncer-Absturz, der durch einen Integer-Überlauf in verwundbaren PgBouncer-Versionen verursacht wird. Das enthaltene Docker-Setup baut PgBouncer 1.25.1, startet ein PostgreSQL-Backend, aktiviert die SCRAM-SHA-256-Authentifizierung und führt poc.py gegen PgBouncer aus.
Dies ist ausschließlich für kontrollierte Labortests gedacht. Führen Sie dies nicht gegen Systeme aus, die Sie nicht besitzen oder für die Sie keine ausdrückliche Genehmigung zum Testen haben.
poc.py - Python-Proof-of-Concept-Client.docker-compose.yml - Lokale Dienste für PostgreSQL, PgBouncer und den PoC-Runner.postgres/init.sql - Erstellt den Testdatenbank-Benutzer.pgbouncer/Dockerfile - Baut verwundbares PgBouncer 1.25.1.pgbouncer/pgbouncer.ini - PgBouncer-Konfiguration mit SCRAM-Authentifizierung.pgbouncer/gen_userlist.py - Erzeugt einen deterministischen SCRAM-Verifizierer.poc.py manuell vom Host aus ausführen.Bauen und starten Sie das Labor:
docker compose up --build
Die Compose-Datei startet:
6432.Um nur die Dienste zu starten und den PoC manuell auszuführen:
docker compose up --build postgres pgbouncer
python3 poc.py 127.0.0.1 6432
Wenn der verwundbare PgBouncer-Prozess auf die fehlerhafte SASL-Erstantwort trifft, sollte der Client einen Verbindungsreset melden oder feststellen, dass PgBouncer nicht mehr erreichbar ist. Der PoC prüft diese Bedingung und gibt aus, ob der Absturz bestätigt wurde.
Die Lab-Container stoppen und entfernen:
docker compose down
Der PoC verwendet standardmäßig:
127.0.0.16432testusertestdbBenutzerdefiniertes Ziel:
python3 poc.py <host> <port>