安全指导:SessionStart构建了304 MB SDK v,没有证书检查,并忽略了Security GUIDANCE-DISBAL

作者: fadmaz创建于 2026年8月14日更新于 2026年9月17日

总结

hooks/ensure_agent_sdk.py 在每个 SessionStart 中运行,并构建一个 304 MB 的 venv~/.Claude/security/agent-sdk-venv,3,831 个文件)以安装 claude_agent_sdk。该 SDK 仅用于支持 LLM 提交/推送/停止审核。main() 根据六个条件来决定是否构建:Python 版本、系统路径上的 SDK、构建监控器、现有 venv、--target 回退选项以及信号杀死冷却时间。它不检查决定 SDK 是否会被使用的三个因素中的任何一个:

  1. API 认证grep -iE 'ANTHROPIC_API_KEY|AUTH_TOKEN|credential' hooks/ensure_agent_sdk.py 返回空。LLM.py:123 遍历每个 LLM 路径,检查 HAS_API_CREDENTIALS,但引导程序从未查看它。
  2. ENABLE_STOP_REVIEW / ENABLE_COMMIT_REVIEW。两者都只在 security_reminder_hook.py 中读取。明确关闭审核的用户仍然会获得 venv。
  3. SECURITY_GUIDANCE_DISABLE — 文档中描述的主杀死开关security_reminder_hook.py:164-170 将其描述为完全禁用 "插件",但它仅在该文件中读取。ensure_agent_sdk.py 的导入包括 importlib.util, json, os, subprocess, sys, time, pathlib_base.state_dir — 杀死开关从未到达该位置。因此,在没有认证的机器上,插件自己的杀死开关无法阻止 SessionStart 为无法运行的功能构建 304 MB 的 venv

从该机器的 ~/.Claude/security/log.txt + log.txt.1 中,2026-07-29 → 2026-08-14(16 天):

观察
运行的停止审核 0 的 315 — 所有日志都记录了 LLM review disabled or no API credentials
运行的提交审核 0 的 227 — 224 个日志记录了相同的内容,3 个没有审核行
进行的 LLM API 调用,总计 0(使用 grep 查找请求/令牌/agent-sdk-query 标记:没有匹配)
agent-sdk-venv 大小 318,800,844 B(304 MiB),3,831 个文件
为何安装 claude_agent_sdk 0.2.115,构建于 2026-07-10

ANTHROPIC_API_KEYANTHROPIC_AUTH_TOKEN 都已被清除,并且在该 venv 的生命周期中一直如此。

内容来源: anthropics/claude-plugins-official