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

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

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

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

工具目录

分类

查看所有分类
Loading categories
cve-2026-54316-lab — 用于复现 CVE-2026-54316 的实验环境(Claude Code WebFetch 中 huggingface.co 裸主机名的权限绕过/数据外泄) | Kitploit
工具/GitHubGitHub/inertfluid/cve-2026-54316-lab
漏洞分析漏洞利用数据泄露Web安全CTF渗透测试学习与教育实验室与实践
GitHubinertfluid/cve-2026-54316-lab

cve-2026-54316-lab

用于复现 CVE-2026-54316 的实验环境(Claude Code WebFetch 中 huggingface.co 裸主机名的权限绕过/数据外泄)

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-54316 — Claude Code WebFetch HuggingFace 数据外泄实验环境

一个自包含的、一次性使用的实验环境,复现了 GHSA-fg94-h982-f3mm / CVE-2026-54316:Claude Code 将 huggingface.co 作为 裸主机名 预先批准用于 WebFetch 工具,因此该域名上的 任意 路径 —— 包括攻击者控制的模型仓库 —— 都会在 无需权限提示 的情况下被获取。结合提示注入,这形成了一个用于窃取数据的带外通道,可通过 HuggingFace 的服务器端下载计数来观察。

公告GHSA-fg94-h982-f3mm
CVECVE-2026-54316
软件包@anthropic-ai/claude-code (npm)
受影响版本>= 0.2.54, < 2.1.163
修复版本2.1.163
根本原因在多租户主机上使用裸主机名白名单(CWE-183)

⚠️ 道德使用

此实验复现了一个 已修复、公开披露的 漏洞,仅用于教育和防御目的。请只在 您自己拥有的 基础设施上使用:

  • 无论是 HuggingFace 仓库还是警示数据,都必须属于您自己。
  • “秘密”是一个虚拟值(fixtures/canary.env)——切勿使用真实值。
  • 不要针对任何第三方的仓库或真实凭据。

此实验证明的内容

  1. 提示绕过(完全确定):一个存在漏洞的 Claude Code 在获取 huggingface.co 路径时不会弹出审批提示,而其他所有域名都会触发 —— 因为 huggingface.co 位于一个硬编码的白名单中。
  2. 外泄链条:不受信任的内容引导那个自动批准的获取操作,对数据进行编码和泄露,可从 HF 的下载指标中恢复。

设置

容器是运行有漏洞版本的唯一场所;您的主机保持干净。使用 Claude 订阅令牌进行身份验证(无需 API 密钥):

root@kitploit:~
docker build -t cve-2026-54316-lab .
docker run --rm -it cve-2026-54316-lab

在容器内运行 claude,并选择 “Claude 账户(含订阅)” 以交互方式登录。存在漏洞的 2.1.162 版本早于 CLAUDE_CODE_OAUTH_TOKEN 环境变量,因此此处不使用 setup-token —— 交互式浏览器/粘贴代码流程避免了生成长期令牌。

复现 —— 声称项 1(提示绕过)

关键在于 按域名的审批提示不对称,因此 WebFetch 保持 可用(未被禁用)—— 审批通过提示处理,这是默认行为。在容器内的 claude 中:

使用 WebFetch 获取 https://example.com 并总结它。

→ 出现一个权限提示,要求您批准 example.com。然后:

使用 WebFetch 获取 https://huggingface.co/<your-account>/canary-lab/resolve/main/config.json。

存在漏洞: huggingface.co 的获取在 没有提示 的情况下进行,而 example.com 则需要提示。这个不对称就是漏洞 —— huggingface.co 位于硬编码的白名单中。(对于此测试,HF 仓库不必存在;即使返回 401/404 也足以证明从未触发提示。)使用 @anthropic-ai/[email protected] 重新构建后,huggingface.co 的获取现在也会提示 —— 这种前后对比正是重点所在。

复现 —— 声称项 2(数据外泄)

  1. 运行 ./scripts/make_hf_canary_files.sh ./hf-repo,然后将 hf-repo/ 推送到您拥有的公开 HuggingFace 仓库(<your-account>/canary-lab)。
  2. 编辑 payloads/untrusted-readme.md,设置 HF_ACCOUNT,并将其放置到代理程序会将其作为不受信任输入读取的位置。
  3. 让代理程序处理该内容;之后读取您仓库的下载指标,以重建警示字符串。

文件

  • Dockerfile — 固定使用有漏洞的 2.1.162
  • .claude/settings.json — 留空允许/拒绝设置,使 WebFetch 按域名提示
  • fixtures/canary.env — 虚拟警示数据
  • scripts/make_hf_canary_files.sh — HF 警示文件布局
  • payloads/untrusted-readme.md — 提示注入载荷(已净化)
下载工具