Miggo Logo

CVE-2025-49574: Quarkus potentially leaks data when duplicating a duplicated context

6.4

CVSS Score
3.1

Basic Information

EPSS Score
0.05525%
Published
6/23/2025
Updated
6/27/2025
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.1/AV:A/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
io.quarkus:quarkus-vertxmaven<= 3.15.5
io.quarkus:quarkus-vertxmaven>= 3.16.0.CR1, <= 3.20.1
io.quarkus:quarkus-vertxmaven>= 3.21.0.CR1, < 3.24.03.24.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability exists due to a change in the behavior of Vert.x's Context.duplicate() method in version 4.5.12. Previously, duplicating an already duplicated context would result in a new, empty context. The change caused it to inherit data from the parent context, leading to potential data leakage between different transactions in Quarkus applications, which rely heavily on this mechanism for context propagation, especially in reactive messaging.

The provided patch addresses the issue by upgrading the Vert.x dependency to version 4.5.16, where this semantic change was rolled back. Concurrently, the Quarkus code was updated to avoid relying on this implicit behavior.

The analysis of the commit 2b58f59f4bf0bae7d35b1abb585b65f2a66787d1 points to io.quarkus.smallrye.reactivemessaging.runtime.ContextualEmitterImpl.sendMessage as the key function. This function is part of the reactive messaging system and is responsible for propagating context when sending messages. The patch modifies this function to introduce a new helper method, createContextualMessage, which explicitly controls the duplication of the context and the copying of local data. This change ensures that even with the reverted (and now correct) behavior in Vert.x, the intended context propagation for the emitter works as expected without leaking unintended data from other transactions. The vulnerability is triggered when an application uses this emitter, as it would invoke the faulty context duplication logic in the vulnerable Vert.x versions.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

### Imp**t V*rt.x *.*.** **s ***n*** t** s*m*nti*s o* t** *upli**tion o* *upli**t** *ont*xt. *upli**t** *ont*xt is *n o*j**t us** to prop***t* **t* t*rou** * pro**ssin* (syn**ronous or *syn**ronous). **** "tr*ns**tion" or "pro**ssin*" runs on its o

Reasoning

T** vuln*r**ility *xists *u* to * ***n** in t** ****vior o* V*rt.x's `*ont*xt.*upli**t*()` m*t*o* in v*rsion *.*.**. Pr*viously, *upli**tin* *n *lr***y *upli**t** *ont*xt woul* r*sult in * n*w, *mpty *ont*xt. T** ***n** **us** it to in**rit **t* *rom