Skip to main content

PgBouncer EUVDEUVD-2026-101498

| CVE-2026-107348 MEDIUM
Integer Overflow or Wraparound (CWE-190)
2026-10-14 PostgreSQL GHSA-982p-g5h4-w372
5.9
CVSS 3.1 · Vendor: PostgreSQL
View

Attack ChainAIDerived

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

  1. Access
    Reach PgBouncer listener (pre-auth on 1.23.0+)
  2. Exploit
    Send five-byte header declaring length >2^31
  3. Execution
    Trigger integer overflow in mbuf_make_room
  4. Impact
    Non-terminating growth loop pins CPU and stalls all pooled connections

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

Requires PgBouncer to be running with max_packet_size configured above 2147483648 (2^31); this is NON-default (the shipped default is 2147483647), so default deployments are not exploitable. When that condition holds, versions 1.23.0 through 1.26.0 are reachable BEFORE authentication using just a five-byte packet header declaring a length above 2^31; earlier versions 1.21.0-1.22.x are affected but require reaching the vulnerable code path. The primary limiting factor is the non-default configuration - the single required setting gates the entire vulnerability; no user interaction, credentials, or special platform are needed once it is set.

Impact

Signals point to a genuine but conditional availability risk rather than a top-tier priority. The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H) scores 5.9 Medium: network-reachable and unauthenticated (PR:N), but high attack complexity (AC:H) because exploitation only works when an administrator has set max_packet_size above 2147483648 - a non-default value (the default is 2147483647). Impact is availability-only (C:N/I:N) but complete for the affected service (A:H), since PgBouncer's single-process model means one pinned CPU core stalls every pooled connection. No EPSS score was supplied in the input, so exploitation probability cannot be quantified. The CVE is NOT listed in CISA KEV and no POC was provided, so exploitation status is 'no public exploit identified at time of analysis'. The AC:H is driven entirely by the required non-default configuration, not by any technical difficulty in crafting the packet - once that config is present, a five-byte header reliably triggers the overflow (pre-authentication on 1.23.0+). Net: a real priority ONLY for deployments that have raised max_packet_size above 2^31; for the overwhelming majority running defaults, real-world risk is low.

Exploit ScenarioDerived

In a PostgreSQL environment where PgBouncer has max_packet_size configured above 2147483648, a remote attacker connects to the pooler's listening port and sends a packet whose header declares a length above 2^31. The resulting integer overflow in mbuf_make_room leaves the buffer-growth loop unable to terminate, pinning a CPU core and freezing all pooled client connections until the process is restarted. On versions 1.23.0 through 1.26.0 this is reachable before authentication with only a five-byte packet header; no public exploit code was identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 – Oct 14, 2026

Denial of service in PgBouncer 1.21.0 through 1.26.0: a remote attacker who sends a packet header declaring a length above 2^31 triggers an integer overflow in the message buffer growth routine (mbuf_make_room), saturating a CPU core and stalling every pooled connection until the process is restarted. The attack is gated by a non-default configuration - max_packet_size must be set above 2147483648, whereas the shipped default of 2147483647 is not exploitable - but when that setting is in place, versions 1.23.0 through 1.26.0 are reachable before authentication with only a five-byte packet header (PR:N in the assessed vector), while 1.21.0-1.22.x require reaching the vulnerable code path. No public exploit identified at time of analysis, and a vendor patch is available (fixed in 1.26.1 per the EUVD affected-version range).

RemediationAI

Vendor-released patch: 1.26.1 (the EUVD affected range ends at 1.26.1), so the primary action is to upgrade PgBouncer to 1.26.1 or later and restart the pooler process; consult the changelog at https://www.pgbouncer.org/changelog.html for the exact release notes. If an immediate upgrade is not possible, the vulnerability can be neutralized by setting max_packet_size back to the shipped default of 2147483647 or any value at or below 2^31, which removes the overflow condition entirely - the trade-off is that this caps the largest accepted protocol packet and may reject workloads that were deliberately raising the limit to accommodate unusually large queries, so validate such clients before applying. Where the elevated max_packet_size must be retained, restrict network reachability of the PgBouncer listener (default port 6432) to trusted application hosts with firewall or host-based ACLs, since the pre-authentication trigger means credentials and TLS client checks do not stop it; this is a compensating control only and does not remove the bug. Note that once the spin is triggered the process will not recover on its own, so monitoring for CPU saturation and having an automated restart path limits the duration of an outage; patch remains the only complete fix.

Affected VersionsENISA

PgBouncer 1.21.0 <1.26.1

Affected Packages

euvd pgbouncer fix: 1.26.1

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 PostgreSQL connection pooler that serves all clients and server connections from a single process. Its wire-protocol handling uses an mbuf message buffer whose growth path, mbuf_make_room, computes the required buffer size before reallocating; when max_packet_size is configured above 2^31 (2147483648), a packet header declaring a length above that threshold makes the size computation overflow (CWE-190, integer overflow), so the growth loop's termination condition can never be satisfied and the process spins. Because the pooler is single-process, this saturates one CPU core and blocks every pooled connection, requiring a process restart to recover - an availability-only impact (C:N/I:N/A:H) matching the assessed CVSS:3.1 vector AV:N/AC:H/PR:N/UI:N/S:U. The AC:H rating reflects the non-default configuration prerequisite rather than any attack complexity. From 1.23.0 onward the vulnerable path is reachable during the pre-authentication packet header parse, so no credentials are needed once max_packet_size exceeds the threshold. The provided CPE string cpe:2.3:a:n/a:pgbouncer (corresponding to the PgBouncer project) and ENISA EUVD-2026-101498 both map the issue to PgBouncer versions below 1.26.1.

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 5.9 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 5.9 MEDIUM

Network-reachable and unauthenticated (AV:N/PR:N), but AC:H because it depends on the non-default max_packet_size>2^31 setting; availability-only total impact (A:H, C/I:N).

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

Primary rating from Vendor (PostgreSQL).

CVSS VectorVendor: PostgreSQL

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

Lifecycle Timeline

2
Patch available
Oct 14, 2026 - 19:35 EUVD
CVE Published
Oct 14, 2026 - 17:34 cve.org
MEDIUM 5.9

DescriptionCVE.org

Integer overflow in the message buffer growth logic (mbuf_make_room) in PgBouncer 1.21.0 through 1.26.0 allows a remote attacker to cause a denial of service when max_packet_size is configured above 2147483648. A packet header declaring a length above 2^31 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 restarted. Since 1.23.0 the overflow is reachable before authentication with a five-byte packet header.

Threat Intelligence Overview

EPSS Score
0.4%
Top 68% exploitable
Prevalence
High
de facto standard connection pooler in PostgreSQL production deployments
Data Quality
5 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
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-6668 HIGH
7.5 Sep 23

A crafted oversized input to the PgBouncer connection pooler (versions through 1.25.2) triggers an integer overflow in p

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

Vendor StatusVendor

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