🔴 【深度分析】严重安全漏洞:CVE-2026-57572

CVSS 评分: 严重(10.0)🔴  状态: Received  发布时间: 2026-07-06


🔍 技术细节速览

字段 值
CVE ID CVE-2026-57572
CVSS 评分 10.0 🔴
严重程度 严重
CVSS 向量 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
CWE 分类 CWE-88,CWE-94
发布时间 2026-07-06
最后更新 2026-07-06
状态 Received
数据来源 security-advisories@github.com

危害等级 严重 (Critical)
CVSS 评分 10.0
CVSS 向量 CVSS:3.1 / AV:N / AC:L / PR:N / UI:N / S:C / C:H / I:H / A:H
漏洞类型 参数注入 (Argument Injection) → 命令注入 (Command Injection)

漏洞概述

CVE-2026-57572 是开源项目 Crawl4AI(一个面向大语言模型的网络爬虫与抓取工具)中存在于其 Docker API 服务中的一个严重安全漏洞。攻击者无需任何身份验证,仅通过向 Docker API 发送一个特制的 HTTP 请求,即可在容器内以运行用户身份执行任意系统命令。

该漏洞的根本原因在于 API 服务器未经严格过滤即接受用户提供的 browser_config.extra_args 参数,并将其直接传递给 Chromium 浏览器的启动参数。攻击者可以利用 Chromium 的 --no-zygote 与 --utility-cmd-prefix 等开关,将 Chromium 原本用于启动子进程的命令替换为恶意命令,从而实现远程代码执行。


受影响组件与版本

组件 受影响版本范围 修复版本
Crawl4AI Docker API 服务 < 0.9.0 0.9.0
非 Docker 运行模式 未受影响 –

说明:该漏洞仅在启用 Docker API 的情况下被触发。若用户以标准库形式调用 Crawl4AI(非 Docker 模式),则不受此漏洞影响。


漏洞原理分析

1. 攻击向量解析

根据 CVSS 向量 AV:N/AC:L/PR:N/UI:N:

  • 攻击向量 (AV:N):攻击者通过网络远程发起攻击。
  • 攻击复杂度 (AC:L):利用难度低,无需复杂的网络条件或环境配置。
  • 权限要求 (PR:N):无需任何预先认证或授权。
  • 用户交互 (UI:N):无需用户(如管理员)进行任何点击或确认操作。

2. 技术细节

漏洞发生在 Crawl4AI Docker API 处理浏览器启动参数的过程中:

  1. 输入入口:API 端点接受 browser_config.extra_args 字段,该字段本意是允许用户定制浏览器的启动参数(例如设置代理、禁用沙箱等)。
  2. 参数传递缺陷:服务器在启动 Chromium 进程时,将该字段内原本合法的参数列表未经充分校验即拼接至 Chromium 启动命令行中。
  3. 利用方式:攻击者可以注入两类关键 Chromium 开关:
    • --no-zygote:禁用 Chromium 的“孵化器(zygote)”进程模型。在正常模式下,Chromium 子进程通过 zygote 进程 fork 而来;禁用后,子进程将直接通过默认的 UtilityProcessManager 启动。
    • --utility-cmd-prefix:允许指定一个自定义命令前缀,该前缀会被添加至所有子进程的启动命令行之前。Chromium 会将该前缀解释为要执行的命令。
  4. 后果:
    • 当 Chromium 尝试创建一个子进程(例如渲染进程)时,系统实际执行的是 prefix + <original_command>。
    • 由于 --utility-cmd-prefix 可以指向任意可执行文件,攻击者即可执行任意系统命令,实现远程代码执行。

现有信息的局限性:以上分析基于 NVD 描述及公开的 Chromium 命令行参数文档。具体的代码实现细节(如 extra_args 是否在 Python 中通过 shlex.split() 处理,或者是否存在类型误用等)暂需查阅源代码仓库确认,但核心攻击路径已由安全公告明确描述。


影响评估

攻击复杂度与利用条件

评估维度 评估结果
前提条件 攻击目标必须运行 Crawl4AI 的 Docker API 服务(默认端口 9876)。
身份验证 不需要任何用户名、密码或 API Key。
利用复杂度 非常低。攻击者只需发送一个简单的 POST 请求,携带构造好的 browser_config.extra_args 即可。
自动化难易度 极易实现自动化扫描与渗透。

潜在后果

  • 机密性丧失 (C:H):容器内所有文件、环境变量、数据库连接信息等均可被读取。
  • 完整性丧失 (I:H):攻击者可修改、删除或篡改容器内的数据与服务配置。
  • 可用性丧失 (A:H):可导致容器崩溃、资源耗尽或完全被控制,服务不可用。
  • 容器逃逸扩展 (S:C):由于是在容器运行时用户下执行命令,若 Docker 配置存在挂载(volume mount)或特权模式,攻击者可能进一步逃逸至宿主机。即使无法逃逸,也可利用容器作为跳板对内网横向移动。

修复建议

官方修复

立即升级 Crawl4AI 至 0.9.0 或更高版本。官方已在该版本中移除了对 browser_config.extra_args 的盲目信任,并对可接受的参数进行了白名单限制,同时禁用了高危 Chromium 开关的注入。

临时缓解措施

若无法立即升级,建议采取以下措施:

  1. 限制 API 访问:使用 iptables、云安全组或 Docker 网络策略,仅允许受信任的 IP 地址段访问 Docker API 端口(默认 9876)。
  2. 增加认证:在 API 前添加反向代理(如 Nginx、Caddy),实现基于 Token 或 Basic Auth 的认证。
  3. 最小权限原则:
    • 确保 Docker 容器运行时用户为非 root 用户(通常为 nobody 或 appuser)。
    • 移除不必要的 Linux Capabilities,特别是 --cap-add=SYS_PTRACE(若不需要)。
  4. 监控与告警:监控 Docker API 的日志,对包含可疑 --no-zygote 或 --utility-cmd-prefix 参数的请求进行实时告警。

参考资料

类型 链接
CVE 详情 https://nvd.nist.gov/vuln/detail/CVE-2026-57572
CWE-88(参数注入) https://cwe.mitre.org/data/definitions/88.html
CWE-94(代码注入) https://cwe.mitre.org/data/definitions/94.html
Chromium 命令行参数 https://peter.sh/experiments/chromium-command-line-switches/
Crawl4AI 官方仓库 https://github.com/unclecode/crawl4ai