POC详情: 9369a45238e452110a71ddea49cd8d61a1e68556

来源
关联漏洞
标题: VMware Spring Boot 安全漏洞 (CVE-2025-22235)
描述:VMware Spring Boot是美国威睿(VMware)公司的一套开源框架。 VMware Spring Boot存在安全漏洞,该漏洞源于EndpointRequest.to在端点禁用或未暴露时创建null/**匹配器,可能导致安全约束绕过。
介绍
# CVE-2025-22235: Spring Boot EndpointRequest.to() 认证绕过漏洞演示

## 漏洞描述

CVE-2025-22235是一个Spring Boot安全漏洞,涉及`EndpointRequest.to()`方法在配置安全规则时可能生成错误的匹配器,导致未暴露的执行器端点路径(如`/null/**`)的安全保护失效。

## 影响版本

- Spring Security 5.7.16
- Spring Security 5.8.18  
- Spring Security 6.0.16
- Spring Security 6.1.14
- Spring Security 6.2.10
- Spring Security 6.3.8
- Spring Security 6.4.4
- 较旧的、不受支持的版本也受到影响

## 漏洞原理

当使用`EndpointRequest.to("health")`配置安全规则时,如果`health`端点未在`management.endpoints.web.exposure.include`中配置,Spring Boot会生成错误的路径匹配器`/null/**`,导致该路径下的所有请求都绕过认证检查。

## 环境搭建

### 1. 项目依赖
- Spring Boot 3.4.3 (有漏洞版本)
- Spring Security
- Spring Boot Actuator

### 2. 关键配置
- `management.endpoints.web.exposure.include=info` (仅暴露info端点,health端点未暴露)
- 安全配置中使用`EndpointRequest.to("health")`引用未暴露的端点

## 漏洞复现步骤

### 1. 启动应用
```bash
mvn spring-boot:run
```

### 2. 访问受保护的端点
直接访问 `http://localhost:8080/null`,无需登录即可访问,证明存在认证绕过漏洞。

### 3. 正常认证流程
访问其他受保护的端点如 `http://localhost:8080/info`,会要求登录。

## 漏洞代码分析

### 安全配置类 (SecurityConfig.java)
```java
.requestMatchers(EndpointRequest.to("health")).permitAll()  // 漏洞触发点
.requestMatchers("/null").authenticated()                   // 应该受保护但被绕过
```

### 控制器 (DemoController.java)
```java
@GetMapping("/null")
public String sensitiveEndpoint() {
    return "未登录看到此页面,说明存在CVE-2025-22235认证绕过漏洞!";
}
```

## 漏洞修复

### 1. 升级Spring Boot版本
升级到以下修复版本:
- 3.4.5+
- 3.3.11+
- 其他受支持的最新版本

### 2. 临时缓解措施
- 确保`EndpointRequest.to()`所指的端点已启用并通过Web公开
- 避免处理`/null`路径的请求
- 检查安全配置中引用的端点是否都已正确暴露

## 技术细节

漏洞的根本原因在于`EndpointRequest.to()`方法在处理未暴露的端点时,会生成错误的路径匹配器。当端点名称在`management.endpoints.web.exposure.include`中未配置时,Spring Boot会创建一个包含`null`的路径模式,导致安全规则失效。

## 参考资料

- [CVE-2025-22235官方公告](https://forum.butian.net/article/706)
- Spring Boot官方安全公告
- Spring Security官方文档

## 免责声明

本演示项目仅用于安全研究和教育目的,请勿在生产环境中使用。使用本项目的风险由使用者自行承担。




文件快照

[4.0K] /data/pocs/9369a45238e452110a71ddea49cd8d61a1e68556 ├── [ 10K] mvnw ├── [6.9K] mvnw.cmd ├── [1.8K] pom.xml ├── [2.8K] README.md ├── [ 21] requirements.txt ├── [4.0K] src │   ├── [4.0K] main │   │   ├── [4.0K] java │   │   │   └── [4.0K] com │   │   │   └── [4.0K] example │   │   │   └── [4.0K] demo │   │   │   ├── [ 305] DemoApplication.java │   │   │   ├── [ 618] DemoController.java │   │   │   └── [1.2K] SecurityConfig.java │   │   └── [4.0K] resources │   │   └── [ 237] application.properties │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] com │   └── [4.0K] example │   └── [4.0K] demo │   └── [ 206] DemoApplicationTests.java ├── [ 676] start_demo.bat ├── [ 660] start_demo.sh └── [3.1K] test_vulnerability.py 12 directories, 13 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。