Пароли и ключи разработчиков утекли в 1122 публичных копиях файла Claude Code на GitHub
10 ноября 2026 г. · 3 мин чтения
Пароли и ключи приложений, которые разработчики вводили в команды, одобренные в Claude Code, находятся в публичных репозиториях GitHub, где их может прочитать любой желающий. Компания Apiiro, занимающаяся безопасностью программного обеспечения, сообщила вчера, что 1122 публичные копии файла содержат по крайней мере один секрет, хотя она не проверяла, работают ли они. Одна компания, которую исследователи уведомили на этой неделе, подтвердила, что её ключ был активен.
Когда пользователь выбирает «Да, и больше не спрашивать», помощник по кодированию Anthropic может сохранить команду полностью, включая секрет, в файл параметров проекта. Файл называется .claude/settings.local.json. Исследователи обнаружили сохранённые команды с секретом внутри и воспроизвели поведение с последними моделями Opus 5.5 и Fable 5.1.
По умолчанию Claude Code запрашивает разрешение перед запуском большинства команд оболочки. Если пользователь выбирает «Да, и больше не спрашивать», он сохраняет правило разрешения в .claude/settings.local.json внутри проекта. Правило охватывает только то, что предложил запрос. Иногда это шаблон, например npm test *, а иногда одна точная команда. Когда это точная команда, любой пароль или токен, введённый в неё, также сохраняется в открытом виде.
Claude Code пытается исключить файл из системы контроля версий. При первом написании файла в репозитории он добавляет файл в глобальные исключения пользователя. Однако эта защита действует только в параметрах системы контроля версий одного пользователя на одном компьютере и не помогает файлу, который уже был зафиксирован. Claude Code никогда не добавляет файл в собственный .gitignore проекта, поэтому защита не распространяется на проект.
Поиск Apiiro в публичном GitHub обнаружил 104185 копий файла в 103617 репозиториях. Примерно 1,1 процента из них, или 1122 копии, содержат по крайней мере один секрет. Вместе они содержат 1379 различных секретов. Значение считалось секретом, когда оно соответствовало известному формату ключа или когда пароль или токен находились рядом с адресом публичного сервера. Рецензент на основе искусственного интеллекта также должен был согласиться.
Более трети секретов открывают базу данных напрямую, включая 379 паролей базы данных. Другие включают 43 входа SSH для публичных серверов, 42 токена для GitHub, GitLab и npm, а также 23 ключа AWS. Среди владельцев этих файлов находятся 63 организации, в основном компании-разработчики всех размеров. По состоянию на понедельник каждый файл с секретом всё ещё находился на ветке по умолчанию своего репозитория, а в половине этих репозиториев он находился там по крайней мере 217 дней.
Исследователи рекомендуют разработчикам сначала ротировать: изменить каждый пароль, токен и ключ, которые когда-либо содержались в файле, а затем очистить. Старые версии файла содержат 734 дополнительных секрета в 509 репозиториях, которых нет ни в одной текущей копии, обычно потому, что файл был удалён. Форки распространяют файлы дальше: 211 форков 74 репозиториев содержат те же секреты, что и оригиналы.
Из 16 агентов кодирования, документацию которых сравнили исследователи, Claude Code является единственным, подтверждённо сохраняющим полную одобренную команду в файл проекта по умолчанию. Пользователи Claude Code ранее сообщали об этом поведении. Более ранний отчёт об ошибке, поданный 11 августа 2025 года, указывал, что одобренные команды с ключами и токенами приложений сохранялись полностью в settings.local.json. Автоматизированный бот закрыл этот отчёт как «не запланировано» 3 января после 60 дней без активности.