Spring两大漏洞可导致泄露敏感信息及安全防护绕过(CVE-2025-41253/41254)
字数 1927 2025-10-18 11:17:50
Spring 安全漏洞分析与防护指南(CVE-2025-41253 / CVE-2025-41254)
概述
VMware Tanzu 旗下 Spring 团队于 2025 年披露两个高危漏洞:
- CVE-2025-41253:Spring Cloud Gateway SpEL 表达式注入漏洞,可导致敏感信息泄露。
- CVE-2025-41254:Spring Framework STOMP over WebSocket CSRF 绕过漏洞,可导致未授权消息注入。
一、CVE-2025-41253:SpEL 表达式注入漏洞
漏洞描述
Spring Cloud Gateway Server Webflux(非 WebMVC)在应用路由中错误使用 Spring 表达式语言(SpEL),攻击者可通过执行恶意 SpEL 表达式读取环境变量、系统属性等敏感数据。
影响范围
- 开源版本:
- 4.3.0 – 4.3.x
- 4.2.0 – 4.2.x
- 4.1.0 – 4.1.x
- 4.0.0 – 4.0.x
- 3.1.0 – 3.1.x
- 更早的未维护版本
- 商业版本:同版本范围。
漏洞触发条件
需同时满足以下条件:
- 使用 Spring Cloud Gateway Server Webflux。
- 允许管理员或不受信任的第三方使用 SpEL 表达式定义路由。
- 执行器端点暴露(
management.endpoints.web.exposure.include=gateway)。 - 执行器端点未实施安全防护(如身份验证或授权)。
攻击后果
- 泄露环境变量、系统属性、身份验证令牌、API 密钥、数据库凭证等敏感信息。
修复方案
立即升级
- 开源版:升级至 4.3.2 或 4.2.6。
- 商业版:升级至 4.1.12 或 3.1.12。
临时缓解措施
- 从
management.endpoints.web.exposure.include属性中移除gateway。 - 对执行器端点实施安全防护(如配置身份验证、IP 白名单或网络隔离)。
二、CVE-2025-41254:STOMP WebSocket CSRF 绕过漏洞
漏洞描述
Spring Framework 的 STOMP over WebSocket 功能存在 CSRF 防护绕过漏洞,攻击者可发送未授权的 WebSocket 消息。
影响范围
- 开源版本:
- 6.2.0 – 6.2.11
- 6.1.0 – 6.1.23
- 6.0.x – 6.0.29
- 5.3.0 – 5.3.45
- 商业版本:同版本范围。
受影响应用
依赖 Spring WebSocket 实现实时通信的应用:
- 在线聊天系统
- 金融仪表板
- 物联网控制面板
修复方案
立即升级
- 开源版:升级至 6.2.12。
- 商业版:升级至 6.1.24 或 5.3.46。
临时缓解措施
- 检查并增强 WebSocket 消息的授权逻辑,避免依赖默认 CSRF 防护。
三、防护建议与最佳实践
通用安全措施
- 定期更新依赖:监控 Spring 官方安全公告,及时应用补丁。
- 最小化端点暴露:仅暴露必要的执行器端点,禁用默认开放的高风险端点。
- 网络隔离:将管理接口与公网隔离,仅允许内网或 VPN 访问。
- 强化认证授权:对所有管理端点实施强身份验证和角色授权。
针对 CVE-2025-41253 的额外建议
- 避免允许不受信任的来源定义或修改路由规则。
- 定期审计环境变量和系统属性的访问权限。
针对 CVE-2025-41254 的额外建议
- 在 WebSocket 消息处理层添加业务逻辑校验(如用户会话验证)。
- 启用 Spring Security 的 CSRF 防护并自定义 WebSocket 安全策略。
四、漏洞验证与检测
CVE-2025-41253 检测方法
- 检查应用是否使用 Spring Cloud Gateway Webflux。
- 确认是否暴露
/actuator/gateway端点。 - 尝试通过 SpEL 表达式读取
systemProperties或environment数据。
CVE-2025-41254 检测方法
- 验证应用是否使用 STOMP over WebSocket。
- 测试未经验证是否可发送 WebSocket 消息。
五、参考资源
免责声明:本文仅供技术研究参考,使用者应自行评估风险并遵守《中华人民共和国网络安全法》。作者不承担因滥用或误用本文内容导致的任何责任。