CVE-2026-6666PgBouncer是一款轻量级的PostgreSQL连接池工具。在1.25.2版本之前的PgBouncer中存在一个空指针引用漏洞。当服务器发送一个不包含SQLSTATE字段的错误响应时,可能会触发该空指针引用。这种情况会导致PgBouncer进程崩溃,从而造成拒绝服务攻击。该漏洞的CVSS评分为5.9,属于中危漏洞,攻击者无需认证且无需用户交互即可通过网络利用此漏洞。
该漏洞的根源在于PgBouncer处理数据库服务器错误响应时的逻辑缺陷。根据PostgreSQL协议规范,错误响应消息通常包含多个字段,其中SQLSTATE字段用于标识错误的SQL状态代码。然而,在PgBouncer 1.25.2之前的版本中,代码在没有充分检查SQLSTATE字段是否存在的情况下,直接尝试访问该字段的内存地址。当攻击者控制或配置的后端数据库服务器发送一个格式错误的消息,具体来说是一个缺失SQLSTATE字段的ErrorResponse数据包时,PgBouncer的解析逻辑会引用一个空指针。由于没有相应的空值校验机制,这会导致段错误(Segmentation Fault),进而使程序异常终止。由于PgBouncer通常作为连接池中间件运行,其崩溃会导致所有通过它的数据库连接中断,严重影响服务的可用性。攻击者可以通过向PgBouncer发送特制的网络数据包来触发此漏洞,无需复杂的权限配置。