{"id":"CVE-2026-6669","aliases":["AZL-105063","BIT-pgbouncer-2026-6669","DEBIAN-CVE-2026-6669","EUVD-2026-85364","GHSA-58j7-v2vx-r29w","RHSA-2026:70698","UBUNTU-CVE-2026-6669"],"status":"published","title":"Unbounded SCRAM iteration count causes CPU exhaustion in PgBouncer","description":"Missing upper bound on the key derivation iteration count accepted during SCRAM authentication to a backend server in PgBouncer through 1.25.2 allows a malicious or compromised PostgreSQL backend to cause uncontrolled CPU consumption in PgBouncer. The resulting key derivation cannot be interrupted in frontend builds such as PgBouncer. Because PgBouncer serves all clients from a single process, one backend can in this way stop it from serving traffic for every other database and client it is pooling, so the failure of a single backend is not contained.","severity":{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.0042,"percentile":0.3662,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-400"],"published":"2026-09-23T16:04:47Z","modified":"2026-10-17T12:56:41Z","fixes":[{"ecosystem":"Bitnami","package":"pgbouncer","fixed_in":["1.26.0"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"pgbouncer","fixed_in":["1.26.0-1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Azure Linux:3","package":"pgbouncer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"1.25.2-1"}]}]},{"source":"osv","ecosystem":"Bitnami","package":"pgbouncer","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.26.0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"pgbouncer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.18.0-1","1.18.0-1+deb12u1","1.19.0-1","1.19.1-1","1.20.0-1","1.20.1-1","1.21.0-1","1.22.0-1","1.22.1-1","1.23.0-1","1.23.1-1","1.24.0-2","1.24.0-3","1.24.1-1","1.25.0-1","1.25.0-2","1.25.1-1","1.25.2-1","1.26.0-1","1.26.0-2","1.26.0-3","1.26.0-4","1.26.0-5","1.26.0-6"]},{"source":"osv","ecosystem":"Debian:13","package":"pgbouncer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.24.1-1","1.24.1-1+deb13u1","1.24.1-1+deb13u2","1.25.0-1","1.25.0-2","1.25.1-1","1.25.2-1","1.26.0-1","1.26.0-2","1.26.0-3","1.26.0-4","1.26.0-5","1.26.0-6"]},{"source":"osv","ecosystem":"Debian:14","package":"pgbouncer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.26.0-1"}]}],"versions":["1.24.1-1","1.25.0-1","1.25.0-2","1.25.1-1","1.25.2-1"]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"pgbouncer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.26.0-0.1.hum1"}]}],"bundled":3},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"pgbouncer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.5.5-1","1.6.1-1","1.7-1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"pgbouncer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.2-3build1","1.7.2-65-g2b8e6cf-1","1.8.1-1","1.8.1-1build1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"pgbouncer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.10.0-1","1.10.0-1build1","1.11.0-1","1.12.0-2","1.12.0-3"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"pgbouncer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.15.0-1","1.16.1-1ubuntu1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"pgbouncer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.20.0-1","1.21.0-1","1.22.0-1","1.22.0-1build1","1.22.0-1build3","1.22.0-1build4"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"pgbouncer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.25.1-1","1.25.2-1","1.25.2-1ubuntu1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"pgbouncer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.24.1-1","1.25.0-2","1.25.1-1"]}],"references":[{"url":"https://www.pgbouncer.org/changelog.html","tags":["web","article","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-6669","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-58j7-v2vx-r29w"},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-6669","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:70698","tags":["advisory"]},{"url":"https://images.redhat.com/","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-6668","tags":["report"]},{"url":"https://access.redhat.com/security/updates/classification/","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-6669","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-19888","tags":["report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_70698.json","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2539548","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-6668","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-6668","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2539546","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-6669","tags":["advisory","report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2539545","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-19888","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-19888","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-6669","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-6669","title":"Unbounded SCRAM iteration count causes CPU exhaustion in PgBouncer","description":"Missing upper bound on the key derivation iteration count accepted during SCRAM authentication to a backend server in PgBouncer through 1.25.2 allows a malicious or compromised PostgreSQL backend to cause uncontrolled CPU consumption in PgBouncer. The resulting key derivation cannot be interrupted in frontend builds such as PgBouncer. Because PgBouncer serves all clients from a single process, one backend can in this way stop it from serving traffic for every other database and client it is pooling, so the failure of a single backend is not contained.","status":"published","published":"2026-09-23T16:04:47.824Z","modified":"2026-09-23T16:46:13.708Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"cna"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T13:49:53.818886Z"}],"euvd":[{"id":"EUVD-2026-85364","description":"Missing upper bound on the key derivation iteration count accepted during SCRAM authentication to a backend server in PgBouncer through 1.25.2 allows a malicious or compromised PostgreSQL backend to cause uncontrolled CPU consumption in PgBouncer. The resulting key derivation cannot be interrupted in frontend builds such as PgBouncer. Because PgBouncer serves all clients from a single process, one backend can in this way stop it from serving traffic for every other database and client it is pooling, so the failure of a single backend is not contained.","status":"published","published":"2026-09-23T16:04:47Z","modified":"2026-09-23T16:46:13Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T17:28:00.617613Z"}],"ghsa":[{"id":"GHSA-58j7-v2vx-r29w","title":"Missing upper bound on the key derivation iteration count accepted during SCRAM authentication to...","description":"Missing upper bound on the key derivation iteration count accepted during SCRAM authentication to a backend server in PgBouncer through 1.25.2 allows a malicious or compromised PostgreSQL backend to cause uncontrolled CPU consumption in PgBouncer. The resulting key derivation cannot be interrupted in frontend builds such as PgBouncer. Because PgBouncer serves all clients from a single process, one backend can in this way stop it from serving traffic for every other database and client it is pooling, so the failure of a single backend is not contained.","status":"published","published":"2026-09-23T18:31:56Z","modified":"2026-09-23T18:32:04Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T15:12:21.120874Z"}],"nvd":[{"id":"CVE-2026-6669","description":"Missing upper bound on the key derivation iteration count accepted during SCRAM authentication to a backend server in PgBouncer through 1.25.2 allows a malicious or compromised PostgreSQL backend to cause uncontrolled CPU consumption in PgBouncer. The resulting key derivation cannot be interrupted in frontend builds such as PgBouncer. Because PgBouncer serves all clients from a single process, one backend can in this way stop it from serving traffic for every other database and client it is pooling, so the failure of a single backend is not contained.","status":"published","published":"2026-09-23T17:17:16.223Z","modified":"2026-09-23T19:40:10Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"secondary"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T14:12:50.703874Z"}],"osv":[{"id":"DEBIAN-CVE-2026-6669","description":"Missing upper bound on the key derivation iteration count accepted during SCRAM authentication to a backend server in PgBouncer through 1.25.2 allows a malicious or compromised PostgreSQL backend to cause uncontrolled CPU consumption in PgBouncer. The resulting key derivation cannot be interrupted in frontend builds such as PgBouncer. Because PgBouncer serves all clients from a single process, one backend can in this way stop it from serving traffic for every other database and client it is pooling, so the failure of a single backend is not contained.","status":"published","published":"2026-09-23T17:17:16.223Z","modified":"2026-10-04T17:00:12.499740763Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:45:58.699079Z"},{"id":"RHSA-2026:70698","title":"Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update","status":"published","published":"2026-09-25T10:15:08Z","modified":"2026-09-25T10:42:49.271036072Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:53:22.928316Z"},{"id":"UBUNTU-CVE-2026-6669","description":"Missing upper bound on the key derivation iteration count accepted during SCRAM authentication to a backend server in PgBouncer through 1.25.2 allows a malicious or compromised PostgreSQL backend to cause uncontrolled CPU consumption in PgBouncer. The resulting key derivation cannot be interrupted in frontend builds such as PgBouncer. Because PgBouncer serves all clients from a single process, one backend can in this way stop it from serving traffic for every other database and client it is pooling, so the failure of a single backend is not contained.","status":"published","published":"2026-09-23T17:17:00Z","modified":"2026-10-17T12:56:41.302735803Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T16:56:53.710209Z"},{"id":"AZL-105063","title":"CVE-2026-6669 affecting package pgbouncer 1.25.2-1","description":"Missing upper bound on the key derivation iteration count accepted during SCRAM authentication to a backend server in PgBouncer through 1.25.2 allows a malicious or compromised PostgreSQL backend to cause uncontrolled CPU consumption in PgBouncer. The resulting key derivation cannot be interrupted in frontend builds such as PgBouncer. Because PgBouncer serves all clients from a single process, one backend can in this way stop it from serving traffic for every other database and client it is pooling, so the failure of a single backend is not contained.","status":"published","published":"2026-09-23T17:17:16Z","modified":"2026-10-15T05:37:09Z","updated_at":"2026-11-02T15:28:01.09948Z"},{"id":"BIT-pgbouncer-2026-6669","title":"Unbounded SCRAM iteration count causes CPU exhaustion in PgBouncer","description":"Missing upper bound on the key derivation iteration count accepted during SCRAM authentication to a backend server in PgBouncer through 1.25.2 allows a malicious or compromised PostgreSQL backend to cause uncontrolled CPU consumption in PgBouncer. The resulting key derivation cannot be interrupted in frontend builds such as PgBouncer. Because PgBouncer serves all clients from a single process, one backend can in this way stop it from serving traffic for every other database and client it is pooling, so the failure of a single backend is not contained.","status":"published","published":"2026-10-01T09:31:04.522Z","modified":"2026-10-01T10:00:11.433511052Z","updated_at":"2026-11-02T15:28:34.343258Z"}]}}
