漏洞概述
CVE-2025-49574 是一个存在于Quarkus框架中的中等严重性安全漏洞。该漏洞的根源在于底层使用的Vert.x库(版本4.5.12)更改了“重复上下文”的复制语义,可能导致存储于上下文中的敏感数据在不同处理事务间意外泄露。
漏洞细节
影响范围:
- 受影响版本:
io.quarkus:quarkus-vertx<= 3.15.5io.quarkus:quarkus-vertx>= 3.16.0.CR1, <= 3.20.1io.quarkus:quarkus-vertx>= 3.21.0.CR1, <= 3.24.0
- 已修复版本:
- 3.15.6
- 3.20.2
- 3.24.1
漏洞原理: “重复上下文”是用于在同步或异步处理过程中传播数据的对象。每个“事务”或“处理”都在其自身独立的重复上下文中运行。
在Vert.x 4.5.12之前,复制一个已存在的重复上下文会创建一个全新的(空的)上下文,这意味着新的上下文可用于管理一个独立的事务。然而,在Vert.x 4.5.12中,此语义被更改:父重复上下文的内容会被复制到新的上下文中,这潜在地导致了数据泄露。
Quarkus广泛使用Vert.x的重复上下文来实现上下文传播。因此,在新的语义下,一个事务的数据可能泄露给另一个事务。大量数据存储在重复上下文中,包括请求范围、安全详情和元数据。
触发场景: 复制重复上下文的情况较为罕见,仅发生在少数几个地方:
- 使用OTel(OpenTelemetry)的Quarkus REST客户端(但属于同一事务,因此不存在泄露)。
- Quarkus消息传递连接器。
- Quarkus SmallRye Health(同一事务,无泄露)。
修复与缓解
官方补丁: 经过与Vert.x团队的讨论,此项更改将在Vert.x 4.x版本中被回滚。Vert.x 5将添加新的API来区分这两种情况。
临时解决方案: 在复制重复上下文时,可以使用以下代码来避免潜在的数据泄露:
|
|
一旦包含了修复的Vert.x版本被集成,此解决方案将不再需要。但即使修复后,此方案仍然有效。
参考信息
- GitHub安全公告: GHSA-9623-mj7j-p9v4
- Quarkus问题报告: quarkusio/quarkus#48227
- NVD漏洞详情: https://nvd.nist.gov/vuln/detail/CVE-2025-49574
- 相关修复提交:
- quarkusio/quarkus@2b58f59
- quarkusio/quarkus@31e8a3b
- quarkusio/quarkus@d1ee57e
- Quarkus修复版本发布: https://github.com/quarkusio/quarkus/releases/tag/3.24.1
安全评分
CVSS v3.1 总体评分:6.4(中等)
基础指标:
- 攻击向量: 相邻网络
- 攻击复杂度: 高
- 所需权限: 低
- 用户交互: 无
- 影响范围: 未改变
- 机密性影响: 高
- 完整性影响: 高
- 可用性影响: 无
弱点枚举:
- CWE-668: 资源暴露至错误范围
EPSS(漏洞被利用预测评分系统)评分: 0.026%(第7百分位)