Одна строка, миллион проблем
История с утечкой Claude Code обрела неожиданное продолжение. Если в марте 2026 все винили забытый sourcemap в продакшн-сборке, то сегодня выяснилось - корень проблемы глубже. Гораздо глубже. Он прятался в самом Bun, JavaScript-рантайме, который Anthropic использовала для сборки своего AI-ассистента.
На момент 02.04.2026 команда Bun выпустила критический патч для версии 2.3.1, закрывающий уязвимость CVE-2026-0428. Но тысячи проектов уже скомпилированы с опасной версией 2.3.0.
Что сломалось в Bun?
Баг был коварен в своей простоте. В Bun 2.3.0 (релиз от 15 марта 2026) изменили логику обработки env-переменных при сборке TypeScript-проектов. Новая оптимизация для скорости - и вот она, дыра.
Рантайм начал включать в бандл файлы, на которые ссылались sourcemap, даже если они явно исключены в конфигурации. В теории это должно было работать только в dev-режиме. На практике сработало всегда. Для Claude Code это означало, что весь TypeScript-код, включая внутренние утилиты и конфиги, попал в прод.
Цепная реакция
Anthropic собирала Claude Code CLI именно через Bun. Последняя стабильная версия инструмента, 2.8.1, вышла 25 марта 2026 - уже после бага в Bun, но до его обнаружения. Команда просто не знала, что использует сломанный инструмент.
Результат? Исходники, которые должны были остаться в штаб-квартире Anthropic, оказались разбросаны по CDN и тысячам пользовательских машин. Не через хакерскую атаку. Через стандартный процесс сборки.
| Компонент | Версия | Статус на 02.04.2026 |
|---|---|---|
| Bun | 2.3.0 | Уязвима, использовать запрещено |
| Bun | 2.3.1 | Патч выпущен, рекомендована к установке |
| Claude Code CLI | 2.8.1 | Уязвима при сборке с Bun 2.3.0 |
| Claude Code CLI | 2.9.0-beta | Внутренняя сборка, проверяется |
Урок номер один: зависимости кусаются
Разработчики любят Bun за скорость. Но этот инцидент показывает - даже самые популярные инструменты могут подвести. Особенно когда обновляешься на свежую версию в погоне за производительностью.
В Anthropic признали: они автоматически обновили Bun в CI/CD пайплайне, как только вышла версия 2.3.0. Тесты прошли, сборка завершилась быстрее. Казалось, идеальный апдейт. До момента, когда код оказался в открытом доступе.
Это тот самый случай, когда слепое доверие к инструменту приводит к катастрофе. Напомнило историю с фиаско Claude Code на $1.78 миллиона - там тоже система отключила проверки после серии успехов.
Что делать сейчас? Неочевидные шаги
Первое - проверить все проекты на Bun 2.3.0. Если нашли, откатываться до 2.2.9 или обновляться до 2.3.1. Но это очевидно. Менее очевидно другое.
Пересмотреть политику обновлений зависимостей. Особенно для инструментов сборки и транспиляции. Bun, esbuild, swc - все они имеют доступ к вашему коду. Одна ошибка в них, и ваши секреты утекают.
- Внедрить стадийные обновления: сначала на тестовых проектах, потом на второстепенных, и только потом на critical path.
- Запускать security-аудит после каждого обновления инструментов сборки. Да, это замедлит процесс. Но потерять исходники - еще медленнее.
- Рассмотреть инструменты вроде Security Scanner Pro для автоматического мониторинга уязвимостей в цепочке сборки.
А что с Claude Code?
Anthropic работает над версией 2.9.0, где полностью пересмотрен процесс сборки. Ходят слухи, что они даже рассматривают переход на другой рантайм. Но официально это не подтверждено.
Исходники, которые уже утекли, не отозвать. Их изучают, копируют, модифицируют. Кто-то нашел там интересные подходы к оркестрации промптов. Кто-то - дыры в безопасности, похожие на трояны в skill.md файлах.
Парадокс: утечка сделала Claude Code более безопасным. Теперь тысячи глаз смотрят на его код, ищут уязвимости. Anthropic получает бесплатный пентест от всего сообщества.
Прогноз на 2026: подобных инцидентов станет больше. Инструменты сборки усложняются, добавляют все больше магии. И в этой магии всегда найдется место для бага, который откроет ваши секреты. Доверяйте, но проверяйте. Особенно зависимости.
Совет напоследок: если ваш проект критически важен, задумайтесь о диверсификации инструментов сборки. Одна цепочка - одна точка отказа. Bun сегодня, esbuild завтра. И никогда не храните секреты в коде, который попадает в бандл. Даже если уверены, что инструмент их исключит.
Как показал этот инцидент, инструменты тоже ошибаются. А цена ошибки - ваш исходный код на GitHub под чужой учеткой.