yanisvdc/why-claude-code-leaked

GitHub: yanisvdc/why-claude-code-leaked

基于 Claude Code 泄露事件的 npm 包发布前安全审计工具链,防止敏感文件意外打包泄露。

Stars: 10 | Forks: 6

# Claude Code 泄露仓库:打包安全案例研究 (v2.1.88) **发布前护栏**,防止 npm 包意外附带调试文件(如 source maps)或其他敏感产物。 **新来的?** 如果不熟悉 *npm*、*agent* 或 *model weights* 等术语,请浏览 **理解泄露(通俗语言)** 或打开 **[完整术语表](docs/glossary.md)**。**工具包**部分适用于发布 JavaScript 包的用户。 [![Package Audit](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/6ff45ef389073137.svg)](https://github.com/yanisvdc/why-claude-code-leaked/actions/workflows/package-audit.yml) [![License](https://img.shields.io/github/license/yanisvdc/why-claude-code-leaked)](https://github.com/yanisvdc/why-claude-code-leaked/blob/main/LICENSE) [![Last Commit](https://img.shields.io/github/last-commit/yanisvdc/why-claude-code-leaked)](https://github.com/yanisvdc/why-claude-code-leaked/commits/main)

Packaging security case study visual

## 理解泄露(简述) *基于公开讨论和报道的教育性总结——非独立取证验证。* **术语表:** 请参阅 **[docs/glossary.md](docs/glossary.md)**,其中为**非开发人员**和**数据科学家**解释了 *LLM / weights / npm / agent / source map / supply chain* 等概念。 **问题所在:** 报道描述了 `@anthropic-ai/claude-code` **v2.1.88**(2026 年 3 月下旬)中的一个**打包错误**:不该发布给每个 `npm install` 用户的文件被发布了,这使得**客户端产品代码**(CLI、工具、prompts)更容易被重构。这**不等同于**“模型权重泄露”。厂商定性:**人为错误**,而非典型的入侵——[CNBC 关于 Anthropic 声明的报道](https://www.cnbc.com/2026/03/31/anthropic-leak-claude-code-internal-source.html)。 **广泛共识:** (1) **Weights/训练数据**属于不同的资产类别;共识是它们**并非**此次泄露的核心。(2) 故事中敏感的*形态*在于 **orchestration**:围绕模型的 prompts、工具、权限和工作流。(3) 这与当今 **agents** 的构建方式相符:模型 + 控制层。 **常被夸大之处:** 内部**代号** ≠ 经证实的路线图;**“小心 / 不要产生幻觉”** prompts 是常规护栏,并非证明模型特别糟糕;**“全功能预测引擎”** 容易被炒作——除非经证实,否则应假设为**有边界**的实验。 **IP 提示:** 公开代码可见性 **≠** 开源或重新分发的许可。如有疑问,请仅使用**官方厂商渠道**。 ## 标题背后的安全风险 - **伪造“泄露”下载** — 将非官方仓库/压缩包视为**恶意软件风险**;参见 [Zscaler ThreatLabz](https://www.zscaler.com/blogs/security-research/anthropic-claude-code-leak)。 - **更智能的诱饵** — 更多产品细节可能意味着更具欺骗性的**恶意项目布局**(hooks、配置)。应假定**不受信任的仓库具有敌意**。 - **Agents 放大错误** — 在错误的克隆上拥有 Shell + 文件访问权限影响巨大。 - **喧嚣的新闻日** — 固定安装版本;无关的 **npm** 事件可能在时间上重合。 - **本仓库** 旨在帮助**发布者**审计发布内容;它**不是**完整的 SCA/ Secrets/ SBOM 方案。 ## 5 分钟上手 复制:`scripts/audit-package.mjs`, `scripts/generate-pack-manifest.mjs`, `scripts/compare-pack-manifest.mjs`, `package-audit.config.json`, `.github/workflows/package-audit.yml`。 ``` node scripts/audit-package.mjs node scripts/generate-pack-manifest.mjs node scripts/compare-pack-manifest.mjs ``` **模式:** minimal = 仅审计 · standard = 审计 + 清单 + CI · strict = 更严格的 `package-audit.config.json` / 位于 `configs/presets/` 的预设。详情:**[docs/adopt-in-5-minutes.md](docs/adopt-in-5-minutes.md)**。 **CI:** `.github/workflows/package-audit.yml` 检出仓库,使用 Node 24,如果存在 `npm test` 则运行,运行审计,并在您提交基线时与 `data/pack-manifest.json` 进行对比。

Use this in 5 minutes

## 快速开始(您的包) 从包含 **`package.json`** 的目录运行(您的库或 CLI)。 ``` node scripts/audit-package.mjs npm test # in this repo only; adds confidence in the scripts ``` 严格模式示例:`node scripts/audit-package.mjs --max-bytes=300000 --fail-on-license-missing` **默认值:** 阻止 `.map`,标记风险路径,大小限制;通过 `package-audit.config.json` 调整。**误报:** [docs/false-positives-and-tuning.md](docs/false-positives-and-tuning.md)。 ## 本仓库包含的内容 | 区域 | 路径 | |------|------| | 审计脚本 | `scripts/*.mjs`, `*.sh`, `*.ps1` | | 策略 | `package-audit.config.json`, `configs/presets/` | | CI | `.github/workflows/package-audit.yml` | | 示例包 | `examples/npm-secure-package/` | | 事件数据 | `data/sources.json`, `data/timeline.json` | | 文档 | `docs/` (FAQ, 检查清单, 威胁矩阵, 示例输出, 范围, 支持, 运行手册) | | 模板 | `.github/ISSUE_TEMPLATE/`, `PULL_REQUEST_TEMPLATE.md` | | 测试 | `tests/`, `npm test` | **了解更多:** [docs/claude-code-leak-faq.md](docs/claude-code-leak-faq.md) · [docs/npm-hardening-checklist.md](docs/npm-hardening-checklist.md) · [docs/threat-model-matrix.md](docs/threat-model-matrix.md) **npm 事实(来自官方文档):** 发布内容遵循 `files` / ignore 规则;`npm pack --dry-run` 预览 tarball;如果产物指向公共存储桶,可能会扩大影响范围——[Cloudflare R2 public buckets](https://developers.cloudflare.com/r2/buckets/public-buckets/)。 ## 主要参考 - [npm `package.json`](https://docs.npmjs.com/cli/v9/configuring-npm/package-json/) · [publish](https://docs.npmjs.com/cli/v9/commands/npm-publish) · [pack](https://docs.npmjs.com/cli/v8/commands/npm-pack) - [Cloudflare R2 public buckets](https://developers.cloudflare.com/r2/buckets/public-buckets/) - [Bun #28001](https://github.com/oven-sh/bun/issues/28001) (工具背景,非因果证明) - [The Register](https://www.theregister.com/2026/03/31/anthropic_claude_code_source_code/) · [VentureBeat](https://venturebeat.com/technology/claude-codes-source-code-appears-to-have-leaked-heres-what-we-know/) - [Zscaler ThreatLabz](https://www.zscaler.com/blogs/security-research/anthropic-claude-code-leak) · [CNBC](https://www.cnbc.com/2026/03/31/anthropic-leak-claude-code-internal-source.html) 完整索引:**`data/sources.json`**。
标签:AI安全, Anthropic, Chat Copilot, CI/CD安全, CIS基准, Claude Code, CMS安全, Cutter, DevSecOps, DLL 劫持, GNU通用公共许可证, JavaScript, Llama, MITM代理, Node.js, npm, Source Map, 上游代理, 前端安全, 大语言模型, 打包配置, 数据可视化, 文档安全, 暗色界面, 案例研究, 源码泄露, 漏洞分析, 网络安全, 自定义脚本, 路径探测, 软件包安全, 软件开发工具包, 配置审计, 防御措施, 隐私保护