Skip to main content

PgBouncer EUVDEUVD-2026-85363

| CVE-2026-6668 HIGH
Integer Overflow or Wraparound (CWE-190)
2026-09-23 PostgreSQL GHSA-r96c-7w9v-wrc8
7.5
CVSS 3.1 · Vendor: PostgreSQL
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach PgBouncer listening port
  2. Delivery
    Send oversized packet input
  3. Exploit
    Overflow buffer size computation
  4. Execution
    Growth loop fails to terminate
  5. Persist
    Single process saturates CPU core
  6. Impact
    All pooled connections stall (DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

No special conditions - remote unauthenticated exploitation against default configurations of PgBouncer (through 1.25.2): the description explicitly states both unauthenticated and authenticated code paths can reach the overflow, so an attacker only needs network reachability to the pooler's listening port and the ability to send a sufficiently large input. The primary LIMITING factor is impact scope, not access: the flaw yields only denial of service (CPU saturation and stalled connections), with no confidentiality or integrity effect, and recovery requires killing/restarting the process. Realistic exposure depends on whether the PgBouncer port is reachable by untrusted networks versus firewalled to trusted application hosts.

Impact

All CVSS signals point to a genuine but availability-only concern: AV:N/AC:L/PR:N/UI:N make this trivially reachable by an unauthenticated remote attacker over the network, and A:H reflects that a single crafted large input can wedge PgBouncer's single-process event loop, saturating a CPU core and stalling every pooled connection until the process is manually killed. However, C:N/I:N confirm there is no data disclosure, tampering, or code execution - this is a pure DoS. No EPSS score, KEV listing, or POC availability was provided in the input, so exploitation probability and real-world weaponization cannot be quantified from the data at hand. The severity is legitimately elevated because PgBouncer is a chokepoint in front of the database (one crash takes down all pooled clients), but this is a service-availability issue rather than a confidentiality/integrity breach; prioritize patching for internet-exposed or shared-tenant poolers, but it is not a high-CVSS-but-fake-risk case nor a confirmed-exploited emergency. Key missing data: no EPSS/KEV/POC signals and only a changelog reference (no dedicated advisory), so exploitation likelihood is inferred, not confirmed.

Exploit ScenarioDerived

An unauthenticated attacker who can reach the PgBouncer listening port sends a sufficiently large packet that triggers the integer overflow in the buffer-growth computation, sending the growth loop into a non-terminating state. This pins a CPU core and freezes the single shared process, stalling every pooled database connection until an operator kills PgBouncer. No POC was identified in the provided data; the unauthenticated code path makes the attack low-complexity per the CVSS AC:L rating.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 23, 2026

A crafted oversized input to the PgBouncer connection pooler (versions through 1.25.2) triggers an integer overflow in packet buffer growth logic, leaving the growth loop unable to terminate and pinning a CPU core permanently because all clients are served from a single process. Per the assigned CVSS vector (AV:N/AC:L/PR:N/UI:N) this is reachable by an unauthenticated remote attacker with only network access to the pooler's listening port, and both unauthenticated and authenticated code paths can reach the flawed computation; there is no confidentiality or integrity impact, but the pooler stalls every pooled connection until the process is killed. No public exploit code or confirmed active exploitation (CISA KEV) was identified at time of analysis, and no EPSS score was supplied; the practical risk is therefore availability-only and depends on whether the PgBouncer port is exposed to untrusted networks rather than firewalled to trusted application hosts.

RemediationAI

The primary fix is to upgrade PgBouncer off the affected range - anything at or below 1.25.2 - to a release that contains the corrected buffer growth logic; because an exact patched version was not independently confirmed in the supplied data, verify the specific fixed release against the vendor changelog at https://www.pgbouncer.org/changelog.html before rolling out, so the remediation corresponds to a version that actually addresses the overflow. Where immediate upgrade is not possible, the most effective compensating control is network scoping rather than authentication: bind PgBouncer's listen address to internal interfaces and use firewall rules or security groups to permit the pooler port only from trusted application hosts, accepting that this does not help deployments where clients are inherently untrusted. Pair that with process supervision that restarts the pooler on failure (for example systemd Restart=always with a short interval) plus CPU-saturation alerting, understanding the trade-off that a restart forcibly drops every pooled connection and will surface as connection errors to applications. A TCP-level front end or proxy that caps per-connection input size and enforces rate limits can blunt the attack, but with the caveat that a single oversized packet - not a flood - is sufficient to trigger the overflow, so size and rate limits must be strict enough to reject large inputs before they reach the pooler. Disabling or removing the affected unauthenticated code path is not possible through configuration alone, and TLS client-certificate enforcement does not mitigate the issue because the overflow is reachable on unauthenticated paths; therefore patching remains the only complete fix and the workarounds above should be treated as temporary risk reduction.

Affected VersionsENISA

PgBouncer 0 ≤1.25.2

Affected Packages

euvd pgbouncer no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

PgBouncer is a lightweight connection pooler that multiplexes many client connections onto a small number of PostgreSQL server connections, and it runs as a single process with an event loop rather than forking a worker per client - which is precisely why one wedged loop degrades all tenants. The root cause is CWE-190 (Integer Overflow or Wraparound) in the packet buffer growth logic: when a sufficiently large input forces the buffer, the size computation used to grow that buffer wraps around, so the condition that should terminate the growth loop is never satisfied and the process spins indefinitely instead of rejecting or truncating the oversized packet. The CPE string cpe:2.3:a:n/a:pgbouncer:*:*:*:*:*:*:*:* carries an unresolved vendor field and a wildcard version, so it confirms PgBouncer as the affected product across all versions but does not scope a specific release range beyond the description's statement of "through 1.25.2". Because the defect sits in buffer sizing rather than in authentication or SQL parsing, it is reachable before or independent of successful authentication, matching the PR:N vector.

Know when Pgbouncer gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (PostgreSQL) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Unauthenticated network-reachable input (AV:N/AC:L/PR:N/UI:N) triggers a non-terminating loop that stalls the single shared process, so A:H with no confidentiality or integrity impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Red Hat 7.5 HIGH

Primary rating from Vendor (PostgreSQL).

CVSS VectorVendor: PostgreSQL

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

DescriptionCVE.org

Integer overflow in the packet buffer growth logic in PgBouncer through 1.25.2 allows an unauthenticated remote attacker to cause a denial of service. Sufficiently large input makes the buffer size computation overflow, leaving the growth loop unable to terminate. Because PgBouncer serves all clients from a single process, this saturates a CPU core and stalls every pooled connection until the process is killed. Both unauthenticated and authenticated code paths can reach the overflow.

Executive ViewAI

Why It Matters

PgBouncer versions through 1.25.2 are vulnerable to an unauthenticated remote denial-of-service attack that can permanently pin a CPU core and stall all pooled database connections, disrupting any application relying on PostgreSQL through this pooler. While no data breach occurs, the availability impact means business-critical services may become unresponsive until the PgBouncer process is manually restarted. Leadership should prioritize this if the PgBouncer port is exposed beyond trusted application hosts, as a single malicious packet can halt database access for all dependent systems.

Business Impact: High
Compensating Controls

No vendor patch available. Interim mitigations: restrict network access to trusted hosts (firewall rules), monitor CPU usage for anomalies, implement auto-restart for the PgBouncer process, enforce connection limits, and consider deploying redundant PgBouncer instances behind a load balancer to limit single-point failure.

Threat Intelligence Overview

EPSS Score
0.4%
Top 68% exploitable
Prevalence
High
de facto standard PostgreSQL connection pooler, widely deployed in production
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC Vendor VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2015-4054 HIGH POC
7.5 May 23

PgBouncer before 1.5.5 allows remote attackers to cause a denial of service (NULL pointer dereference and crash) by send

CVE-2026-6665 CRITICAL
9.8 May 09

Stack-based buffer overflow in PgBouncer before 1.25.2 lets a malicious or impersonated PostgreSQL backend corrupt the p

CVE-2021-3672 MEDIUM POC
5.6 Nov 23

A flaw was found in c-ares library, where a missing input validation check of host names returned by DNS (Domain Name Se

CVE-2026-107350 HIGH
8.8 Oct 14

Authentication bypass in PgBouncer 1.17.0 through 1.26.0 allows an authenticated attacker who knows a valid password for

CVE-2015-6817 HIGH
8.1 May 23

PgBouncer 1.6.x before 1.6.1, when configured with auth_user, allows remote attackers to gain login access as auth_user

CVE-2025-2291 HIGH
8.1 Apr 16

Password can be used past expiry in PgBouncer due to auth_query not taking into account Postgres its VALID UNTIL value,

CVE-2021-3935 HIGH
8.1 Nov 22

When PgBouncer is configured to use "cert" authentication, a man-in-the-middle attacker can inject arbitrary SQL queries

CVE-2026-107349 HIGH
7.5 Oct 14

Unauthenticated remote attackers can render PgBouncer 1.20.0 through 1.26.0 unresponsive by sending a single crafted Sta

CVE-2026-19888 HIGH
7.5 Sep 23

Unauthenticated remote attackers can crash PgBouncer through 1.25.2 by sending a malformed SCRAM client-final-message th

CVE-2025-12819 HIGH
7.5 Dec 03

Untrusted search path in auth_query connection handler in PgBouncer before 1.25.1 allows an unauthenticated attacker to

CVE-2026-6664 HIGH
7.5 May 09

Remote denial-of-service in PgBouncer versions before 1.25.2 allows unauthenticated attackers to crash the connection po

CVE-2026-6666 HIGH
7.5 May 09

Denial of service in PgBouncer before 1.25.2 lets a malicious or malfunctioning PostgreSQL backend crash the connection

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy