POC详情: 1eb37f2e863096cdf7db6a31b6244a074516372a

来源
关联漏洞
标题: Hugging Face Transformers 代码问题漏洞 (CVE-2024-3568)
描述:Hugging Face Transformers是为 Jax、PyTorch 和 TensorFlow 打造的先进的自然语言处理。 Hugging Face Transformers存在代码问题漏洞,该漏洞源于容易通过 TFPreTrainedModel() 类的 load_repo_checkpoint() 函数中反序列化不受信任的数据来执行任意代码。
描述
This study analyzes Python pickle deserialization vulnerabilities, focusing on CVE-2024-3568 in Hugging Face Transformers' TFAutoModel. We reproduce the exploit to examine its root cause, attack vectors, and risks.
介绍
# Transformers 中的 pickle 反序列化漏洞利用

## 实验简介
介绍pickle 反序列化机制及其__reduce__攻击原理,复现 Hugging Face Transformers 库中的反序列化漏洞[CVE-2024-3568](https://github.com/llm-sec/transformer-hacker/tree/main/docs/CVE-2024-3568),分析 Transformers 库中的安全隐患并提出安全加固的有效方案。**详细内容参见实验PDF文档**。

(poc作者代码详见[CVE-2024-3568](https://github.com/llm-sec/transformer-hacker)或者**author_inf**文件夹)

## 关键信息
1. **漏洞位置**
`TFAutoModel.load_repo_checkpoint()` 方法(Transformers ≤ v4.37.2)

2. **攻击原理**
恶意检查点中的 `extra_data.pickle` 文件通过 `pickle.load()` 反序列化时触发RCE

3. **影响范围**
- Transformers 库 ≤ v4.37.2
- 使用检查点恢复功能的AI应用

## 环境配置
```bash
# 详细配置说明见实验PDF
pip install transformers==4.37.2 tensorflow
git clone https://github.com/llm-sec/transformer-hacker
```

## pickle 反序列化机制

详见PDF文档。

test.py、test2.py涉及原理分析(由AI问小白辅助,感谢技术突破带来的生产力提升)。

## 漏洞复现

1. **恶意检查点生成**
(具体命令见PDF文档)

2. **漏洞触发**
(代码示例见PDF文档)

3. **攻击验证**
(验证方法见PDF文档)

## 防御方案
1. **升级Transformers至≥v4.38.0**
2. **禁用`load_repo_checkpoint()`方法**
3. **实施检查点文件校验**

> **详细技术分析**:
> 完整漏洞原理、利用过程和防御策略请参考实验PDF文档
> **POC实现**:poc作者代码详见[CVE-2024-3568](https://github.com/llm-sec/transformer-hacker)或者**author_inf**文件夹
文件快照

[4.0K] /data/pocs/1eb37f2e863096cdf7db6a31b6244a074516372a ├── [4.0K] author_inf │   ├── [4.0K] CVE-2024-3568 │   │   ├── [4.0K] README.assets │   │   │   ├── [208K] image-20241020130104077.png │   │   │   ├── [987K] image-20241020130441654.png │   │   │   └── [ 21K] image-20241020130557014.png │   │   └── [ 12K] README.md │   └── [1.8K] README.md ├── [1.0K] LICENSE ├── [1.0K] main.py ├── [ 610] poc.py ├── [1.7K] README.md ├── [ 820] setup.py ├── [4.0K] src │   ├── [ 0] __init__.py │   ├── [4.0K] payload │   │   ├── [4.0K] CVE_2024_3568 │   │   │   ├── [ 0] __init__.py │   │   │   ├── [4.6K] payload_generator.py │   │   │   ├── [ 802] poc.py │   │   │   └── [4.0K] __pycache__ │   │   │   ├── [ 180] __init__.cpython-38.pyc │   │   │   └── [4.4K] payload_generator.cpython-38.pyc │   │   ├── [ 0] __init__.py │   │   └── [4.0K] __pycache__ │   │   └── [ 166] __init__.cpython-38.pyc │   ├── [4.0K] __pycache__ │   │   └── [ 158] __init__.cpython-38.pyc │   └── [4.0K] utils │   ├── [ 582] command_util.py │   ├── [ 318] file_util.py │   ├── [ 0] __init__.py │   └── [4.0K] __pycache__ │   ├── [ 737] command_util.cpython-38.pyc │   ├── [ 559] file_util.cpython-38.pyc │   └── [ 164] __init__.cpython-38.pyc ├── [ 344] test2.py ├── [ 229] test.py └── [3.6M] Transformers中pickle反序列化漏洞利用.pdf 11 directories, 28 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。