Play 框架安全公告

XML 外部实体

CVE-ID

CVE-2014-3630

日期

2014 年 10 月 7 日

2014 年 11 月 19 日更新:Play 2.2.6 发布,包含修复。

描述

在 Play 的 Java XML 处理中发现了一个漏洞。

攻击者可以使用 XML 外部实体从文件系统、内部网络读取文件,或对应用程序进行拒绝服务攻击。

影响

任何直接使用 Java play.libs.XML API 从不受信任的来源解析 XML 的应用程序,或使用 Play 的 WS 客户端 API 解析来自不受信任服务器的 XML 响应的应用程序。

具体来说,此漏洞影响接收包含 XML 主体的请求的 Java 操作。它也不影响 Play 中提供的任何 Scala XML 处理 API。

受影响的版本

解决方法

不要使用 play.libs.XML API 解析 XML,而是使用按照 OWASP 描述配置的 DocumentBuilderFactory 此处

不要使用 play.libs.ws.WSResponse.asXml 方法,而是使用 getBody 方法,并使用安全配置的 DocumentBuilderFactory 解析它。

修复

升级到 Play 2.3.5 或 Play 2.2.6。

CVSS 指标 (更多信息)

致谢

发现此漏洞的功劳归于 Red Hat 产品安全部的 David Jorm。