NewToken 新词元关注新智能
读懂

Claude「别再问我」留下1379个明文密钥

Apiiro在1122个公开的Claude本地批准文件里找到1379个密钥。本机排除挡不住已进仓库的副本,责任在把整条命令写成授权记录。

专题GitHub:持续追踪 · Anthropic:持续追踪主线监管·安全·出口

读懂|Claude「别再问我」留下1379个明文密钥
本文提纲4 节
  1. 「别再问我」会原样保存整条命令
  2. 1122个公开文件里有1379个密钥
  3. 本机排除挡不住已经进仓库的副本
  4. 责任在把明文命令当成授权记录

一次批准之后,编码智能体把整条命令连同里面的密钥写进了项目文件。

据 The Hacker News 11 月 7 日转述的 Apiiro 研究,公开 GitHub 上有 1122 个这样的文件。里面共有 1379 个不同密钥。我们的判断是,该改的是默认把整条命令写成授权记录。

「别再问我」会原样保存整条命令

据 Claude Code 权限文档,在需要批准的 Bash 命令上选择 “Yes, and don’t ask again”,这条批准会按仓库和命令永久保存。文档写明,没有通配符的规则只匹配这一条完整命令。

据 Claude Code 设置文档,这条批准会作为 allow 规则,写进项目里的 .claude/settings.local.json。

首次由 Claude Code 在 git 仓库里写入该文件时,它会把 **/.claude/settings.local.json 加进用户本机的全局 git excludes。

文档同时写明:如果这个文件是人手创建的,要自己把它加进项目的 .gitignore。保护范围被写成本机、这一次由软件写入,不会随仓库一起分发。

1122个公开文件里有1379个密钥

据 The Hacker News,Apiiro 在公开 GitHub 上找到该文件 104185 份,分布在 103617 个仓库。其中 1122 份约合 1.1% 含至少一个密钥,合计 1379 个不同密钥。

Apiiro 没有验证这些密钥是否仍可用。它说,通知过的一家公司确认,密钥当时是有效的。

文件主人涉及 63 家组织,主要是软件公司。密钥类型如下:

  • 379 个数据库密码
  • 43 个面向公网服务器的 SSH 登录
  • 42 个 GitHub、GitLab 或 npm 令牌
  • 23 个 AWS 密钥

The Hacker News 写到,截至报道所称的周一,含密钥的文件都还在各自仓库的默认分支上,其中一半至少放了 217 天。

据 Cyber Security News,这批公开副本的采集时间是 2026 年 11 月 1 日至 3 日。把历史提交、团队会提交的 .claude/settings.json 和智能体会话记录算进去,密钥总数是 2539 个。它们分布在 1994 个仓库。

The Hacker News 还写到,在可追溯的 1105 个仓库里,539 个由署名 Claude 为共同作者的提交改动过该文件。研究者据此认为,智能体常常自己提交这个文件。这是分析推断,依据是共同作者字段,不是 Anthropic 的说明。

对这 1122 个含密钥的文件,gitleaks 标出 564 个,TruffleHog 标出 643 个,有 215 个两者都没标出。漏掉的主要是夹在命令里的密码,扫描器习惯认的是已知密钥格式。

本机排除挡不住已经进仓库的副本

最有力的反驳来自 Anthropic 自己的文档:它会把该文件加入本机全局 excludes,人手创建的才要自己加进项目 gitignore。公开副本里约 1.1% 含密钥,Apiiro 也没有验证它们是否仍有效。

这个反驳我们接受一半。文档自己把保护限定在本机、由 Claude Code 写入的那一次。全局 excludes 不随仓库走,也写不进项目自己的 .gitignore,已经进版本库的副本它管不到。

The Hacker News 写到,Apiiro 对比了 16 个编码智能体的文档,只有 Claude Code 被确认默认把完整已批准命令存进项目文件。2025 年 8 月 11 日已有人报告批准命令里的密钥被原样写入。机器人在 60 天无活动后于 1 月 3 日以 not planned 关闭。

研究者称,四份相关报告均被同一机器人关闭,没有来自 Anthropic 的回复。

责任在把明文命令当成授权记录

编码智能体要少弹确认框,可以保存命令模式,例如 npm test *。权限文档自己就区分了带星号的模式和一条完整命令。把密码写进命令再点“别再问我”,等于把一次性授权做成可提交的明文台账。

企业采购编码智能体时,应把批准记录是否只保存命令模式、项目里有没有可随仓库分发的 gitignore 规则写成条款。本机 excludes 只能保护还没进仓库的那一台电脑。

该改默认行为的是做出这套产品的 Anthropic,不是后来点了提交的开发者。

来源

引用与数据Markdown 镜像