Skip to main content

Eclipse Vert.x MQTT CVE-2026-102464

| EUVDEUVD-2026-101936 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-15 eclipse GHSA-g3vx-j9rx-jfm5
8.2
CVSS 4.0 · Vendor: eclipse
View

Attack ChainAIDerived

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

  1. Access
    Attacker controls or compromises target's MQTT broker
  2. Delivery
    Client subscribes/connects with QoS 2
  3. Exploit
    Broker sends many QoS 2 PUBLISH with distinct packet IDs
  4. Execution
    Broker withholds all PUBREL packets
  5. Persist
    Messages retained unbounded in qos2inbound map
  6. Impact
    Heap exhaustion crashes or degrades Vert.x application

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

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

Exploitation Conditions

Requires that the Vert.x application act as an MQTT client using io.vertx:vertx-mqtt MqttClient AND process QoS 2 (exactly-once) inbound messages from a broker the attacker controls or has compromised - the malicious behavior is a broker sending QoS 2 PUBLISH packets with distinct packet IDs while withholding PUBREL. Affected versions: Vert.x [4.0.0, 4.5.34], [5.0.0, 5.0.12], [5.1.0, 5.1.9], and 5.2.0. LIMITING FACTORS: the attacker must occupy the broker role (not an arbitrary remote attacker), which is why CVSS rates AC:H; deployments that only connect to fully trusted, operator-controlled brokers, or that do not use QoS 2, are not realistically exposed. The maxInflightQueue option does NOT mitigate this because it constrains only the outbound publish path.

Impact

This is a genuine but bounded availability risk, not a top-tier emergency. The input CVSS 4.0 vector (AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H) scores 8.2 (High) and correctly reflects a network-reachable, availability-only impact (VC:N/VI:N - no data exposure). The key tempering signal is AC:H: exploitation requires the attacker to control the MQTT broker the client connects to, which is a position of trust rather than an opportunistic internet attack. No EPSS score, no CISA KEV listing, and no public exploit were provided, so exploitation is not confirmed in any form - treat this as a latent weakness, not an actively abused one. Signals are internally consistent (DoS-only impact, broker-dependent attack), so there is no CVSS-vs-description contradiction. Note one metadata conflict to flag: the 'Information Disclosure' tag contradicts the vector, which shows C:N/I:N and A:H - this is a memory-exhaustion denial of service, NOT information disclosure. Overall priority: moderate - patch promptly in any deployment where the Vert.x application consumes QoS 2 messages from brokers it does not fully control, but it does not warrant emergency out-of-band response.

Exploit ScenarioDerived

An application built on Eclipse Vert.x uses the vertx-mqtt MqttClient to subscribe to a broker that is attacker-controlled or has been compromised. The broker sends a flood of QoS 2 PUBLISH messages, each with a distinct packet identifier, and deliberately never sends the corresponding PUBREL packets. Each incomplete handshake is retained forever in the unbounded qos2inbound map, so client heap grows without limit until the application degrades or is killed by an out-of-memory error. No public exploit code was identified at time of analysis; exploitation is straightforward for any party able to act as the client's broker.

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

Unbounded inbound memory retention in the Eclipse Vert.x MQTT client (io.vertx:vertx-mqtt) allows a malicious or compromised MQTT broker to drive the Vert.x process into memory exhaustion and eventual out-of-memory termination. Client-side applications embedded in Vert.x 4.0.0 through 4.5.34, 5.0.0 through 5.0.12, 5.1.0 through 5.1.9, and 5.2.0 that subscribe to QoS 2 (exactly-once) topics are affected; the attacker supplies QoS 2 PUBLISH packets with distinct packet identifiers and never sends the matching PUBREL, so each message is retained indefinitely in the client's internal qos2inbound map. The assessed vectors rate this AV:N/AC:H/PR:N with high availability impact only (no confidentiality or integrity impact), reflecting that exploitation requires the attacker to occupy the broker role rather than being an arbitrary remote peer; no confirmed active exploitation (CISA KEV) and no public exploit code were identified at time of analysis, and EPSS data was not provided. Note that the maxInflightQueue option does not mitigate this issue because it constrains only the outbound publish path.

RemediationAI

No exact fixed version is specified in the available input, so the first action is to consult the upstream advisory GHSA-46xj-5735-6qrp (https://github.com/vert-x3/vertx-mqtt/security/advisories/GHSA-46xj-5735-6qrp) and the Eclipse security work item https://gitlab.eclipse.org/security/cve-assignment/-/work_items/344 to identify the release that introduces an inbound bound, then upgrade io.vertx:vertx-mqtt out of the affected ranges (4.0.0-4.5.34, 5.0.0-5.0.12, 5.1.0-5.1.9, 5.2.0) as soon as a patched build is published. Because exploitation requires the attacker to hold the broker role, the highest-value compensating control is to connect only to MQTT brokers that are operator-controlled and mutually authenticated (client certificates or broker-side ACLs plus TLS), which removes the untrusted-broker precondition entirely at the cost of not supporting third-party or federated brokers. Where untrusted brokers cannot be avoided, stop subscribing with QoS 2 and use QoS 0 or QoS 1 for inbound traffic - this eliminates the qos2inbound retention path but sacrifices exactly-once delivery semantics and may cause duplicate or lost messages, so verify application idempotency first; note that tuning maxInflightQueue does NOT help because it only affects the outbound publish path. Additionally, cap the JVM heap (for example via -Xmx or container memory limits) so exhaustion triggers a fast, contained restart rather than host-level pressure, and monitor heap usage and QoS 2 handshake completion rates to detect brokers that withhold PUBREL. In all configurations, avoid running the MQTT-consuming Vert.x process in the same heap or container as availability-critical workloads.

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

MQTT QoS 2 implements exactly-once delivery through a four-packet handshake: the sender emits PUBLISH, the receiver replies PUBREC, the sender replies PUBREL, and the receiver completes with PUBCOMP. In the Eclipse Vert.x MQTT implementation (the io.vertx:vertx-mqtt module, identified by CPE cpe:2.3:a:eclipse_foundation:eclipse_vert.x), the MqttClient stores each inbound QoS 2 PUBLISH message - including topic, payload, and metadata - in an internal map named qos2inbound while it waits for the corresponding PUBREL, so that the message can be dispatched to the application only once the handshake completes. That map is allocated without a size cap, and the client's maxInflightQueue setting is applied solely to the outbound publish path, leaving inbound retention unbounded. The root cause falls into the resource-exhaustion class (unbounded allocation / allocation of resources without limits or throttling, CWE-770 family; the input records CWE as N/A), meaning a peer that controls the number of half-completed QoS 2 handshakes controls the client's heap consumption. Vert.x is a JVM-based toolkit, so the failure mode is Java heap pressure leading to degraded message processing, aggressive garbage collection, and ultimately OutOfMemoryError termination of the hosting process; recovery requires restart, and other workloads sharing the JVM or container are affected.

Know when Eclipse Vert X 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

Network-reachable but requires a malicious/compromised broker (AC:H); client needs no privileges (PR:N); impact is availability-only heap exhaustion (A:H, C:N, 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 Eclipse Vert.x MQTT (vertx-mqtt) MqttClient stores every inbound QoS 2 PUBLISH message received from the broker in an internal map (qos2inbound) while awaiting the corresponding PUBREL packet to complete the QoS 2 handshake. This map has no size limit; the maxInflightQueue option is enforced only on the outbound publish path and does not constrain inbound message retention.

A malicious or compromised MQTT broker can exploit this by sending QoS 2 PUBLISH messages with distinct packet identifiers and withholding the PUBREL responses. Each incomplete handshake causes the client to retain the full publish message (topic, payload, and metadata) indefinitely, leading to unbounded memory growth in the Vert.x process. This can degrade the MQTT-consuming application or cause out-of-memory termination.

The impacted component is io.vertx:vertx-mqtt.

Technical POC Analysis

Evidence base: advisory GHSA-46xj-5735-6qrp only.

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

Eclipse Vert.x MQTT client versions 4.0.0 through 4.5.34, 5.0.0 through 5.0.12, 5.1.0 through 5.1.9, and 5.2.0 are affected by an unauthenticated memory exhaustion denial-of-service (CVSS 8.2) when subscribing to QoS 2 topics, requiring the attacker to control the MQTT broker. This can lead to out-of-memory termination of Vert.x applications, causing service outages. No vendor patch is available, so organizations must adopt interim mitigations.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations include disabling QoS 2 subscriptions, restricting MQTT broker connections to trusted brokers, monitoring memory usage, and applying network segmentation.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Medium
vertx-mqtt is a specific optional module of a popular JVM toolkit
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub 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.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
High
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-2026-102469 CRITICAL
9.2 Oct 15

Eclipse Vert.x DB2 Client versions 4.0.0 through 4.5.34, 5.0.0 through 5.0.12, 5.1.0 through 5.1.9, and 5.2.0 can deseri

CVE-2026-102461 HIGH
8.7 Oct 15

Denial of service in Eclipse Vert.x JSON Schema validation (io.vertx:vertx-json-schema) allows a remote unauthenticated

CVE-2026-102477 HIGH
8.7 Oct 15

Unauthenticated remote attackers can exhaust server memory in Eclipse Vert.x deployments that expose the io.vertx:vertx-

CVE-2026-102475 HIGH
8.7 Oct 15

Denial of service in Eclipse Vert.x HTTP proxy (io.vertx:vertx-http-proxy) affects versions 5.0.0 through 5.0.12, 5.1.0

CVE-2026-102467 HIGH
8.7 Oct 15

Denial-of-service in Eclipse Vert.x allows unauthenticated remote attackers to exhaust server memory by sending compress

CVE-2026-103224 HIGH
8.2 Oct 15

Unbounded direct-memory allocation in Eclipse Vert.x's MySQL client (io.vertx:vertx-mysql-client) versions 4.0.0 through

CVE-2026-103223 HIGH
8.2 Oct 15

An unbounded-memory denial of service in the Eclipse Vert.x PostgreSQL client (io.vertx:vertx-pg-client) allows a malici

CVE-2026-102462 HIGH
8.2 Oct 15

Unbounded direct-memory allocation in Eclipse Vert.x's MSSQL client (io.vertx:vertx-mssql-client) lets a malicious, comp

CVE-2026-102463 HIGH
8.2 Oct 15

Denial of service in Eclipse Vert.x's vertx-pg-client component allows an attacker controlling the PostgreSQL server or

CVE-2026-102466 HIGH
8.2 Oct 15

Denial of service in the Vert.x MySQL client (io.vertx:vertx-mysql-client) lets an attacker who controls or intercepts t

CVE-2026-102465 HIGH
8.2 Oct 15

Denial of service in the Eclipse Vert.x Redis client (io.vertx:vertx-redis-client) affects versions 4.0.0 through 4.5.34

CVE-2026-15076 HIGH
8.2 Jul 14

Cross-domain cookie injection in Eclipse Vert.x Web Client (WebClientSession) lets any server a victim application conta

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