Skip to main content

Eclipse Vert.x CVE-2026-103223

| EUVDEUVD-2026-101956 HIGH
Memory Allocation with Excessive Size Value (CWE-789)
2026-10-15 eclipse GHSA-h6w8-ffgq-ghpg
8.2
CVSS 4.0 · Vendor: eclipse
View

Attack ChainAIDerived

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

  1. Access
    Gain malicious or MITM PostgreSQL server position
  2. Exploit
    Send header with oversized length field
  3. Execution
    Stream unbounded TCP data into composite buffer
  4. Impact
    Exhaust 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

Eclipse Vert.x 5.1.0 ≤5.1.9
Eclipse Vert.x 4.0.0 ≤4.5.34
Eclipse Vert.x 5.0.0 ≤5.0.12
Eclipse Vert.x 5.2.0

Affected Packages

euvd eclipse_vert_x 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

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

Vendor (eclipse) PRIMARY 8.2 HIGH
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
vuln.today AI 5.9 MEDIUM

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.

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

Primary rating from Vendor (eclipse).

CVSS VectorVendor: eclipse

Attack Vector
Network
Attack Complexity
High
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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.

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

Why It Matters

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.

Business Impact: Medium
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

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Medium
popular reactive Java/Vert.x PostgreSQL client, common but not universally deployed
Data Quality
6 sources
Confidence: High

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.3%
Patch available No
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
No
Human Impact
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

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

CVE-2025-1094 HIGH POC
8.1 Feb 13

PostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() improperl

CVE-2024-55964 CRITICAL POC
9.8 Mar 26

An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl

CVE-2013-1899 MEDIUM POC
6.5 Apr 04

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

CVE-2026-20253 CRITICAL POC
9.8 Jun 10

Unauthenticated arbitrary file write in Splunk Enterprise (below 10.2.4 and 10.0.7) and Splunk Cloud Platform (below 10.

CVE-2026-9586 CRITICAL POC
9.3 Jul 17

Unauthenticated SQL injection in Sangoma Switchvox SMB Edition 8.3 (build 104997) lets remote attackers execute arbitrar

CVE-2017-7546 CRITICAL
9.8 Aug 16

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

CVE-2015-1352 MEDIUM POC
5.0 Mar 30

The build_tablename function in pgsql.c in the PostgreSQL (aka pgsql) extension in PHP through 5.6.7 does not validate t

CVE-2024-10553 CRITICAL POC
9.8 Mar 20

A vulnerability in the h2oai/h2o-3 REST API versions 3.46.0.4 allows unauthenticated remote attackers to execute arbitra

CVE-2019-9193 HIGH POC
7.2 Apr 01

In PostgreSQL 9.3 through 11.2, the "COPY TO/FROM PROGRAM" function allows superusers and users in the 'pg_execute_serve

CVE-2026-40887 CRITICAL POC
9.1 Apr 14

Unauthenticated SQL injection in Vendure Shop API allows remote attackers to execute arbitrary SQL commands against the

CVE-2022-24760 CRITICAL POC
10.0 Mar 12

Parse Server is an open source http web server backend. Rated critical severity (CVSS 10.0), this vulnerability is remot

CVE-2025-56157 CRITICAL POC
9.8 Dec 18

Hard-coded default PostgreSQL credentials shipped in the docker-compose.yaml of langgenius Dify through version 1.5.1 al

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