Опцията „Yes, and don’t ask again“ в Claude Code може да запази пароли и API ключове в настройките на проекта, които по-късно попадат в публични хранилища в GitHub.

Изследователи от Apiiro са открили 2539 различни тайни в 1994 публични хранилища, показвайки как едно рутинно одобрение може да превърне частни идентификационни данни в публична информация.

Проучването е идентифицирало 63 засегнати организации, предимно софтуерни компании. Изтеклите идентификационни данни включват облачен ключ с администраторско ниво на доставчик на бази данни, производствена парола за Azure PostgreSQL, производствен токен за Square и парола на собственик за база данни с медицински досиета. От Apiiro посочват, че една компания е потвърдила, че нейният изтекъл ключ е бил активен.

Изтичането започва по време на обикновена развойна дейност. Разработчик моли Claude Code да провери база данни, да тества API или да отстрани проблем с неуспешно влизане. Claude подготвя shell команда, съдържаща идентификационни данни от конфигурационен файл, и след това иска разрешение преди да я изпълни.

Изборът на „Yes, and don’t ask again“ може да запише тази команда, включително съдържащата се в нея тайна, във файла .claude/settings.local.json. Командата се превръща в правило за разрешаване, което позволява на Claude Code да я изпълни отново без повторно питане. Опасността възниква, когато този локален файл бъде добавен и качен в GitHub.

Claude Code се опитва да предотврати това. Когато за първи път записва файла в Git хранилище, той добавя изключение в глобалния файл за игнориране на Git на разработчика. Тази защита обаче не се пренася заедно с проекта, не обхваща вече проследявани файлове и не защитава надеждно папка, която е превърната в хранилище на по-късен етап.

Локалните одобрения се превръщат в публични тайни

Проучването на Apiiro е изследвало 104 185 публични копия на .claude/settings.local.json. Изследователите са открили реални тайни в 1122 файла, съдържащи 1379 различни идентификационни данни. Проверката на по-ранни комити, споделени настройки и записи на разговори с агента е увеличила общия брой до 2539. Събирането на данните се е провело в периода 1–3 ноември 2026 г.

Документацията за настройките на Anthropic потвърждава, че постоянните одобрения се запазват в локалния файл с настройки. Ръководството за разрешения обяснява, че одобренията за shell команди могат да се запазват между отделните сесии. Доклад за проблем в GitHub съобщава за съхранение на идентификационни данни в чист текст в одобрените команди още през август 2025 г.

Разграничението е от значение. Това излагане на риск не изисква злонамерена инструкция или откраднат акаунт. То следва нормалния процес на одобрение. По-ранни уязвимости в конфигурацията на Claude Code включваха атакуващи, които променят настройките на проекта с цел кражба на API ключове, но това разкритие засяга тайни, записани по време на легитимна работа.

От Apiiro са установили, че базите данни съставляват голям дял от изтеклия достъп, включително 379 пароли за бази данни и 122 ключа за сервизни роли в Supabase. Другите находки включват облачни идентификационни данни, частни ключове, токени за регистри на пакети и 43 данни за вход през SSH. Някои SSH команди са съдържали root пароли.

Стандартното сканиране не е уловило всичко. От 1122 засегнати локални файла с настройки, Gitleaks е отбелязал 564, а TruffleHog е отбелязал 643. Нито един от двата инструмента не е засекъл 215 от файловете. Паролите, вградени след PGPASSWORD=, sshpass -p или в заглавките на заявките, често нямат ясните формати, използвани за разпознаване на ключове, издадени от доставчици.

Опазването на тези файлове извън GitHub също оставя локален риск. Зловреден софтуер може да прочете настройките в чист текст на компрометирани лаптопи. Атаката срещу веригата за доставки в npm, наречена Shai-Hulud, вече демонстрира как атакуващите използват TruffleHog за търсене на идентификационни данни във файловете на разработчиците. Тази история превръща файловете с одобрения на агенти в практическа мишена, а не просто в грешка при публикуване.

Разработчиците трябва да претърсят текущите си файлове и историята в Git за .claude/settings.local.json и да инспектират споделените файлове .claude/settings.json. Прегледайте правилата за разрешаване за наличие на пароли, токени, низове за свързване и заглавки за оторизация. Apiiro също така е открила тайни в запазени разговори с агенти, файлове с памет и бележки по внедряването.

Първата стъпка за реакция е подмяната на ключовете, а не изтриването. Анулирайте изтеклите идентификационни данни преди да премахнете файловете или да пренапишете историята. Прекратете проследяването на локалните настройки с git rm --cached .claude/settings.local.json и добавете пътя към файла .gitignore на хранилището.

Използвайте референции към мениджъри на тайни вместо буквални пароли в командите. Екипите по сигурност трябва да сканират папките на агентите и историята, като проверяват както за вградени в командите пароли, така и за разпознаваеми API ключове.