一个严重的远程代码执行(RCE)漏洞(CVE-2025-0868)于2025年2月20日被披露,存在于开源DocsGPT库中,由在解析JSON有效载荷时不安全地使用eval()函数引起。
关键细节:
该漏洞允许攻击者通过/api/remote端点运行任意Python代码。DocsGPT是一个开源生成式AI工具,可使用GPT模型查询项目文档。
| 类别 | 详情 |
|---|---|
| CVE ID | CVE-2025-0868 |
| 受影响的软件 | DocsGPT v0.8.1 – v0.12.0 |
| 漏洞类型 | 远程代码执行(RCE) |
| 攻击向量 | 基于网络(向/api/remote发送HTTP请求) |
| 根本原因 | 对不可信JSON输入不安全地使用eval() |
| 影响 | 服务器完全沦陷(任意命令执行) |
| CWE映射 | CWE-77: 对命令中特殊元素的不当中和 |
向量: AV:N/AC:L/PR:N/UI:N/VC:H/VI:H/VA:H
基础评分: 9.3(严重)
可利用性指标:
影响指标:
该漏洞存在于reddit_loader.py中,用户输入使用不安全的eval()函数进行处理:
def load_data(self, inputs):
data = eval(inputs) # Vulnerable code
client_id = data.get("client_id")
client_secret = data.get("client_secret")
user_agent = data.get("user_agent")
这允许攻击者在JSON字段中执行恶意Python代码: POST /api/remote HTTP/1.1 Content-Type: application/json
{"data": "import('os').system('rm -rf /')"}
为利用此漏洞,我们使用以下工具重建了易受攻击的环境和一个安全的工作空间:
我们开发了一个Python脚本,通过向/api/remote端点发送恶意有效载荷,利用不安全的eval()实现远程代码执行(RCE)。
/api/remote端点中的RCE。/api/remote发送恶意JSON。POST /api/remote HTTP/1.1
Content-Type: application/json
{"data": "__import__('os').system('rm -rf /')"}
更新至DocsGPT v0.12.1及后续版本
将eval()替换为json.loads()。
链接:https://github.com/arc53/DocsGPT/blob/df9d432d29c1bbdf28abb3d35d129060b1964dd3/applicatio n/parser/remote/reddit_loader.py#L9