nicolasjulian/bouncer-overflow

GitHub: nicolasjulian/bouncer-overflow

针对 PgBouncer 1.25.1 中 CVE-2026-6664 整数溢出漏洞的本地拒绝服务 PoC,附带一键 Docker 实验环境。

Stars: 0 | Forks: 0

# PgBouncer 崩溃 PoC 本仓库包含一个本地概念验证,用于演示易受攻击的 PgBouncer 版本中由整数溢出导致的 PgBouncer 崩溃。包含的 Docker 设置会构建 PgBouncer `1.25.1`,启动一个 PostgreSQL 后端,启用 SCRAM-SHA-256 身份验证,并针对 PgBouncer 运行 `poc.py`。 本工具仅用于受控的实验室测试。请勿在未经授权或没有明确测试许可的系统上运行此程序。 ## 目录 - `poc.py` - Python 概念验证客户端。 - `docker-compose.yml` - 本地 PostgreSQL、PgBouncer 和 PoC 运行器服务。 - `postgres/init.sql` - 创建测试数据库用户。 - `pgbouncer/Dockerfile` - 构建存在漏洞的 PgBouncer `1.25.1`。 - `pgbouncer/pgbouncer.ini` - 使用 SCRAM 认证的 PgBouncer 配置。 - `pgbouncer/gen_userlist.py` - 生成确定性的 SCRAM 验证器。 ## 环境要求 - Docker - Docker Compose - Python 3(如果需要从主机手动运行 `poc.py`) ## 使用 Docker Compose 运行 构建并启动实验环境: ``` docker compose up --build ``` Compose 文件会启动: - 内部 compose 网络上的 PostgreSQL。 - 在主机端口 `6432` 上暴露的 PgBouncer。 - 一个运行 PoC 以针对 PgBouncer 进行测试的一次性 Python 容器。 如果仅运行服务并手动执行 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.1` - 端口:`6432` - 用户:`testuser` - 数据库:`testdb` 自定义目标: ``` python3 poc.py ```
标签:CISA项目, CVE, CVE-2026-6664, Docker, Docker Compose, Maven, PgBouncer, PoC, PostgreSQL, Python, SASL认证, SCRAM-SHA-256, 安全测试, 安全防御评估, 崩溃漏洞, 拒绝服务攻击, 攻击性安全, 数字签名, 数据展示, 整数溢出, 无后门, 暴力破解, 概念验证, 测试用例, 漏洞复现, 漏洞验证, 版权保护, 红队, 网络安全, 请求拦截, 逆向工具, 隐私保护