Sploitus

Exploit for cve-2026-22732-demo

kitploit · 2026-09-03

Exploit Code

MARKDOWN72 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SEMGREP-CVE-2026-22732-DEMO
# CVE-2026-22732 演示

**CVE-2026-22732** 的最小复现 — 当控制器代码直接写入 servlet 响应时,Spring Security HTTP 响应头会被静默丢弃。

## 漏洞详情

Spring Security 默认使用“惰性”响应头写入机制。当控制器写入 `response.getOutputStream()`、调用 `response.flushBuffer()` 或通过 `setIntHeader()` 设置 `Content-Length` 时,响应会在 Spring Security 注入其安全响应头(`X-Frame-Options`、`X-Content-Type-Options`、`Cache-Control`、`Strict-Transport-Security` 等)之前被提交。

**CVSS 3.1:9.1(严重)** — 无需身份验证或用户交互。

## 受影响版本

  * Spring Security 5.7.0–5.7.21、5.8.0–5.8.23、6.3.0–6.3.14、6.4.0–6.4.14、6.5.0–6.5.8、7.0.0–7.0.3



## 项目结构

root@kitploit:~
    
    
    src/main/java/com/example/vuln/
    ├── VulnApplication.java      # Spring Boot 入口点
    ├── SecurityConfig.java        # 配置安全响应头(X-Frame-Options、CSP 等)
    └── VulnController.java        # 1 个安全端点 + 3 个易受攻击端点
    src/test/java/com/example/vuln/
    └── HeaderVerificationTest.java # 在易受攻击版本上会失败的测试
    

## 端点

## 运行

root@kitploit:~
    
    
    ./mvnw spring-boot:run
    

然后使用 curl 验证:

root@kitploit:~
    
    
    # 安全 — 响应头存在
    curl -i http://localhost:8080/safe
    
    # 易受攻击 — 安全响应头缺失
    curl -i http://localhost:8080/vuln/stream
    curl -i http://localhost:8080/vuln/flush
    curl -i http://localhost:8080/vuln/content-length
    

## 运行测试

root@kitploit:~
    
    
    ./mvnw test
    

在**易受攻击** 版本上,`vuln*` 测试将**失败** (响应头缺失)。 在**已修补** 版本(6.5.9+ / 7.0.4+)上,所有测试均通过。

## 修复方案

更新 `pom.xml` 以使用已修补的 Spring Security 版本:

root@kitploit:~
    
    
    <spring-security.version>6.5.9</spring-security.version>