Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain malicious or MITM PostgreSQL server position
-
ExploitSend header with oversized length field
-
ExecutionStream unbounded TCP data into composite buffer
-
ImpactExhaust JVM heap, client OOM crash
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory allocation limits
|
| Exploitation Conditions | Exploitation requires the attacker to control the PostgreSQL server side of the connection (a malicious or already-compromised database server) OR to hold a man-in-the-middle position on the client-to-PostgreSQL TCP link; the flaw is in the client-side wire-protocol message decoder of io.vertx:vertx-pg-client. The specific trigger is a PostgreSQL message header whose 4-byte length field is set to an extremely large value (up to Integer.MAX_VALUE), which the decoder accepts without any maximum-size validation and accumulates into an unbounded composite buffer. Key limiting factor: this breaks the normal trust assumption that the database server is benign - a client connecting only to trusted, authenticated, TLS-protected PostgreSQL servers is not realistically exposed. Notably, the condition applies BEFORE authentication completes, so the attacker needs no valid database credentials, only server-side or network-path control. Affected: Vert.x 4.0.0-4.5.34, 5.0.0-5.0.12, 5.1.0-5.1.9, and 5.2.0. |
| Impact | This is a genuine but conditional availability risk, not a widespread-mass-exploitation priority. The provided CVSS 4.0 vector (AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H) correctly captures the core trade-off: the attack is network-reachable and requires no privileges or user interaction, but carries AC:H because the attacker must occupy a privileged position - either operate a malicious/compromised PostgreSQL server the client connects to, or achieve a man-in-the-middle foothold on the client-to-database link. Impact is confidentiality/integrity NONE and availability HIGH only: this is a pure denial-of-service (OOM crash of the client application), consistent with the 'Denial Of Service' tag. No EPSS score, KEV listing, or POC indicator was supplied in the input, so there is no signal of active or probable exploitation - exploitation status is therefore 'no public exploit identified at time of analysis.' The AC:H requirement (trusted-server assumption must be broken) is the dominant risk-limiting factor and explains why an 8.2-rated flaw is realistically lower priority than a remote unauthenticated RCE: an attacker who already controls the database server or network path has limited incentive to merely crash the client. No conflicting signals were detected; the main gap is the absence of exploitation-probability data (EPSS/KEV), which must be sourced separately. |
| Exploit ScenarioDerived | An attacker who controls a PostgreSQL endpoint - a rogue/compromised database server, or a man-in-the-middle on the client-to-DB TCP connection - waits for a Vert.x application using vertx-pg-client to connect. Before authentication completes, the attacker sends a PostgreSQL wire-protocol message header with the 4-byte length field set near Integer.MAX_VALUE, then streams data; the client accumulates it into an unbounded composite buffer until the JVM exhausts memory and crashes. No public exploit code was identified in the provided data, but the attack is trivial to script once server/MITM position is held. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
An unbounded-memory denial of service in the Eclipse Vert.x PostgreSQL client (io.vertx:vertx-pg-client) allows a malicious, compromised, or man-in-the-middle PostgreSQL server to crash a client application by sending a wire-protocol message header whose 4-byte length field is set to an extremely large value (up to Integer.MAX_VALUE). The client-side decoder performs no maximum-size validation, so it keeps accumulating TCP data into a composite buffer until the JVM exhausts heap and terminates; the abuse happens during connection startup, before authentication completes, so no valid database credentials are required - the attacker only needs to control the server side of the connection or sit on the client-to-PostgreSQL TCP path. Per the independent assessment this is a genuine but conditional availability risk (CVSS 8.2, AV:N/AC:H, availability-only impact) rather than a mass-exploitation priority: no public exploit code or confirmed active exploitation was identified at time of analysis, and clients that connect exclusively to trusted, authenticated, TLS-verified PostgreSQL servers are not realistically exposed.
RemediationAI
Upgrade io.vertx:vertx-pg-client (and the Vert.x SQL client stack it belongs to) to a release outside the affected ranges 4.0.0-4.5.34, 5.0.0-5.0.12, 5.1.0-5.1.9, and 5.2.0, using the fixed versions listed in the vendor advisory GHSA-hm2j-xp3c-jff2 (patch available per vendor advisory; the exact fixed version numbers are not specified in the provided data, so confirm them against the advisory before pinning). If immediate upgrade is not possible, compensate for the fact that the attack requires control of the server side or the network path: enforce TLS with full certificate verification on every client connection (in Vert.x this means configuring PEM trust options or an equivalent trusted truststore rather than a permissive/trust-all TLS option) - this defeats the man-in-the-middle variant but has the operational side effect of requiring correct certificate distribution and will reject self-signed or mis-issued server certificates, which can break existing configurations. Restrict database egress so clients may only reach explicitly allow-listed PostgreSQL hosts and ports (default 5432), and disable automatic failover, endpoint autodiscovery, or connection-string parameters that could redirect a client to an untrusted server; this removes the attacker's ability to control the peer at the cost of reduced resilience and more static configuration. Bound the blast radius with JVM heap limits (-Xmx) and restart-on-crash supervision so an OOM kills only the client process rather than the host, accepting that a bounded heap makes the crash occur sooner. Note that because the trigger fires before authentication completes, database-side credential handling, password rotation, and pg_hba.conf changes provide no protection against this specific flaw.
Affected VersionsENISA
Affected Packages
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
The PostgreSQL frontend/backend protocol frames every message as a one-byte type tag followed by a 4-byte big-endian length field; the Vert.x PostgreSQL client (io.vertx:vertx-pg-client), built on the Netty-based vertx-sql-client stack, decodes these frames in its message decoder and, when a frame is incomplete, buffers the partial bytes in a composite buffer while awaiting more TCP data. CVE-2026-103223 is a missing-validation flaw in that decoder: the advertised length is accepted verbatim with no upper-bound check, so a peer that announces a near-Integer.MAX_VALUE payload forces the decoder to keep appending incoming bytes to an unbounded composite buffer, producing uncontrolled heap growth and an OutOfMemoryError that terminates the client process. The affected CPE, cpe:2.3:a:eclipse_foundation:eclipse_vert.x:*:*:*:*:*:*:*:*, is a wildcard for the Eclipse Vert.x project with no version granularity, so the authoritative affected ranges come from the advisory: 4.0.0-4.5.34, 5.0.0-5.0.12, 5.1.0-5.1.9, and 5.2.0. No CWE identifier is assigned in the source data; the weakness corresponds to the unchecked-length/unbounded-allocation class (improper validation of a supplied size value leading to memory allocation with excessive size). Because the malformed header can be delivered during the startup handshake and before authentication completes, the flaw breaks the implicit trust that the database endpoint is benign - the CVSS 4.0 vector (AV:N/AC:H/PR:N/UI:N/VC:N/VI:N/VA:H) and the independent CVSS 3.1 rating (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H) agree that this is purely an availability impact with no confidentiality or integrity loss.
Know when PostgreSQL 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
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
AC:H because the attacker must control the server or achieve MITM; PR:N/UI:N as the pre-auth decoder needs no credentials or victim action; impact is availability-only (A:H), C/I:N.
Primary rating from Vendor (eclipse).
CVSS VectorVendor: eclipse
DescriptionCVE.org
In Eclipse Vert.x versions [4.0.0, 4.5.34] or [5.0.0,5.0.12] or [5.1.0,5.1.9] or [5.2.0, 5.2.0], the PostgreSQL message decoder reads the 4-byte message length field from the PostgreSQL wire protocol without any maximum validation. A malicious, compromised, or man-in-the-middle PostgreSQL server can send a message header with the length field set to an extremely large value (up to Integer.MAX_VALUE), causing the decoder to accumulate subsequent TCP data into a composite buffer without bound, leading to unbounded memory allocation on the client and an out-of-memory crash. This occurs before authentication completes.
The impacted component is io.vertx:vertx-pg-client.
Articles & Coverage 2
Technical POC Analysis
Bug class: attacker-controlled size field drives unbounded resource allocation.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
The Eclipse Vert.x PostgreSQL client (io.vertx:vertx-pg-client) has an availability flaw that can crash Java applications when they connect to PostgreSQL. Organizations running Java services that depend on this client could face service outages if they connect to an untrusted or compromised PostgreSQL endpoint or if an adversary can intercept that connection. Leadership should treat this as a conditional availability risk: no public exploit identified at time of analysis, but no vendor-released patch is available, so exposure depends on connectivity trust and compensating controls.
No vendor-released patch identified at time of analysis. Enforce TLS with strict certificate validation or mTLS for PostgreSQL connections, restrict client access to trusted PostgreSQL endpoints via network ACLs or segmentation, monitor for JVM out-of-memory events and connection-startup crashes, and apply the vendor patch when available.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
More in PostgreSQL
View allPostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() improperl
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
Argument injection vulnerability in PostgreSQL 9.2.x before 9.2.4, 9.1.x before 9.1.9, and 9.0.x before 9.0.13 allows re
Unauthenticated arbitrary file write in Splunk Enterprise (below 10.2.4 and 10.0.7) and Splunk Cloud Platform (below 10.
Unauthenticated SQL injection in Sangoma Switchvox SMB Edition 8.3 (build 104997) lets remote attackers execute arbitrar
PostgreSQL versions before 9.2.22, 9.3.18, 9.4.13, 9.5.8 and 9.6.4 are vulnerable to incorrect authentication flaw allow
The build_tablename function in pgsql.c in the PostgreSQL (aka pgsql) extension in PHP through 5.6.7 does not validate t
A vulnerability in the h2oai/h2o-3 REST API versions 3.46.0.4 allows unauthenticated remote attackers to execute arbitra
In PostgreSQL 9.3 through 11.2, the "COPY TO/FROM PROGRAM" function allows superusers and users in the 'pg_execute_serve
Unauthenticated SQL injection in Vendure Shop API allows remote attackers to execute arbitrary SQL commands against the
Parse Server is an open source http web server backend. Rated critical severity (CVSS 10.0), this vulnerability is remot
Hard-coded default PostgreSQL credentials shipped in the docker-compose.yaml of langgenius Dify through version 1.5.1 al
EUVD-2026-101956
GHSA-h6w8-ffgq-ghpg
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB