
Рабочий POC для CVE-2026-6664, написанный Sonnet 4.6
Этот репозиторий содержит локальный proof of concept (PoC) краха PgBouncer, вызванного целочисленным переполнением в уязвимых версиях PgBouncer. Прилагаемая Docker-настройка собирает PgBouncer 1.25.1, запускает бэкенд PostgreSQL, включает аутентификацию SCRAM-SHA-256 и запускает poc.py против PgBouncer.
Это предназначено только для контролируемого лабораторного тестирования. Не запускайте это против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.
poc.py — клиент proof-of-concept на Python.docker-compose.yml — локальные сервисы PostgreSQL, PgBouncer и запуска PoC.postgres/init.sql — создаёт пользователя тестовой базы данных.pgbouncer/Dockerfile — собирает уязвимый PgBouncer 1.25.1.pgbouncer/pgbouncer.inipgbouncer/gen_userlist.py — генерирует детерминированный SCRAM-верификатор.poc.py вручную с хост-машиныСоберите и запустите лабораторную среду:
docker compose up --build
Файл compose запускает:
6432.Чтобы запустить только сервисы и выполнить PoC вручную:
docker compose up --build postgres pgbouncer
python3 poc.py 127.0.0.1 6432
Когда уязвимый процесс PgBouncer получает некорректный начальный ответ SASL, клиент должен сообщить о сброшенном соединении или о том, что PgBouncer стал недоступен. PoC проверяет это условие и выводит, было ли подтверждено падение.
Остановите и удалите контейнеры лабораторной среды:
docker compose down
По умолчанию PoC использует:
127.0.0.16432testusertestdbПроизвольная цель:
python3 poc.py <host> <port>