
POC fonctionnel de CVE-2026-6664 écrit par Sonnet 4.6
Ce dépôt contient une preuve de concept locale d'un crash de PgBouncer provoqué par un dépassement d'entier dans les versions vulnérables de PgBouncer. Le dispositif Docker inclus construit PgBouncer 1.25.1, démarre un backend PostgreSQL, active l'authentification SCRAM-SHA-256, et exécute poc.py contre PgBouncer.
Ceci est destiné uniquement à des tests en laboratoire contrôlés. N'exécutez pas cela contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite.
poc.py - Client Python de preuve de concept.docker-compose.yml - Services locaux PostgreSQL, PgBouncer et exécuteur du PoC.postgres/init.sql - Crée l'utilisateur de la base de test.pgbouncer/Dockerfile - Construit la version vulnérable 1.25.1 de PgBouncer.pgbouncer/pgbouncer.ini - Configuration de PgBouncer utilisant l'authentification SCRAM.pgbouncer/gen_userlist.py - Génère un vérificateur SCRAM déterministe.poc.py manuellement depuis l'hôteConstruisez et démarrez le laboratoire :
docker compose up --build
Le fichier compose démarre :
6432.Pour exécuter uniquement les services et lancer le PoC manuellement :
docker compose up --build postgres pgbouncer
python3 poc.py 127.0.0.1 6432
Lorsque le processus vulnérable de PgBouncer rencontre la réponse initiale SASL malformée, le client doit signaler une connexion réinitialisée ou PgBouncer devenant injoignable. Le PoC vérifie cette condition et affiche si le crash a été confirmé.
Arrêtez et supprimez les conteneurs du laboratoire :
docker compose down
Le PoC utilise par défaut :
127.0.0.16432testusertestdbCible personnalisée :
python3 poc.py <host> <port>