Claude Code v2.1.248 был опубликован 27 августа в 22:12:20 UTC. Среди примерно сорока пунктов changelog есть эта запись, дословно: "Fixed /ultrareview and locally seeded cloud sessions uploading uncommitted prod.env-style and *.tfvars files, or to editor swap, temp, and backup copies of credential files (e.g. key.pem.tmp, id_rsa.swo); they now stay on your machine."
Что представляют собой эти имена файлов
Незакоммиченный prod.env — это производственные учетные данные. Файл .tfvars — это переменные Terraform, обычно ключи доступа к облаку и секреты инфраструктуры. id_rsa.swo — это swap-файл Vim для приватного SSH-ключа. Это не случайные артефакты; это конкретные файлы, которые разработчик держит вне системы контроля версий именно потому, что это секреты.
Еще одна заголовочная запись
Тот же релиз добавляет --restricted (или CLAUDE_CODE_RESTRICTED=1), который "removes the built-in tools that run commands or code and WebFetch (unless named in --tools), keeps file tools inside the working directory, refuses bypassPermissions, and ignores user, project and local settings files." Также в 2.1.248: расширено межсессионное сообщение для Bedrock, Vertex и Foundry, описание Workflow tool сокращено примерно с 5.7k токенов до 1k, а также исправлен промах в prompt-cache, происходивший "roughly once an hour in long sessions" после обновления OAuth-токена.
Что неверно в обычной подаче
Проблема подачи — в отсутствии подачи. Исправление утечки секретов было опубликовано как ненумерованный пункт — без security advisory, без идентификатора GHSA, без CVE, без уведомления "action required", без раскрытой даты появления и без диапазона затронутых версий. У затронутых пользователей нет способа понять, покинули ли их ключи машину и как долго они там находились.
Во-вторых, детали .swo и .tmp указывают на класс ошибки: загрузчик фильтровал канонические имена файлов с учетными данными, но не сгенерированные редактором варианты, лежащие рядом с ними. Это сбой denylist, то есть проблема на уровне дизайна, представленная здесь как единичное исправление.
В-третьих, --restricted — это флаг усиления защиты, а не sandbox. Прочтите формулировку: он удаляет инструменты и игнорирует файлы настроек. Это уменьшение набора возможностей внутри процесса, а не граница операционной системы — и название подталкивает читателя думать о полной изоляции. Он также молча игнорирует user, project и local settings, что станет неожиданностью для любого, кто включит его, ожидая лишь удаления инструментов.
Наконец, частота релизов скрывает серьезность: при трех выпусках за 26 часов, а 2.1.250 обозначен лишь как "Bug fixes and reliability improvements," исправление, связанное с безопасностью, неотличимо от обычной текучки.
