PgBouncer
Lightweight connection pooler for PostgreSQL
PgBouncer patches a SCRAM flaw that let a known user log in as an admin
◆Recent moves
- 21d ago
PgBouncer 1.26.1 closes a SCRAM user-impersonation flaw
Three CVE fixes, the worst letting a user known to auth_file impersonate any other SCRAM user, including admins, when connecting to a non-existent database. It is a must-upgrade release and the fourth release in a row with CVE fixes.
View source ↗ - 1mo ago
PgBouncer 1.26.0 stops SET search_path leaking between clients
search_path and read-only settings are now tracked by default, ending cross-client leakage in transaction pooling, and the old takeover restart is removed. Three CVE fixes ride along, continuing the run of auth-path hardening.
View source ↗ - 6mo ago
PgBouncer 1.25.2 patches two pre-auth remote crash CVEs
Two CVE fixes in the pre-authentication path: an integer overflow that bypassed a bounds check in packet parsing, and an unchecked strlcat return in the SCRAM code. Both let an unauthenticated remote attacker crash the pooler with a malformed packet.
View source ↗ - 11mo ago
PgBouncer 1.25.1 - Fixing a bunch of bugs before Christmas (including CVE-2025-12819)
Fixes a vulnerability allowing arbitrary SQL execution during authentication via a malicious search_path in the StartupMessage, though only for the narrow set of deployments tracking search_path as an extra parameter. A reminder that startup-parameter passthrough is attack surface.
View source ↗ - 0y ago
PgBouncer 1.25.0 - The one with LDAP support
⚡ SPARKThe release that added LDAP authentication, configurable via HBA file or auth_ldap_options, plus client-side direct TLS using the faster PostgreSQL 17 handshake. It is the largest expansion of PgBouncer's auth surface in years — and the two CVE releases that followed all landed in that same path.
View source ↗ - 1y ago
PgBouncer 1.24.1 - Fixes CVE-2025-2291
Fixes a flaw where PgBouncer's auth_query ignored a user's password VALID UNTIL expiry, so expired passwords still worked through the proxy. The default and documented auth_query were both changed.
View source ↗