Инструмент программирования Claude Code AI обнаружен с серьезной уязвимостью безопасности

icon MarsBit
Поделиться
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary iconСводка

expand icon
Новость о серьезной уязвимости в инструменте искусственного интеллекта Claude Code от Anthropic была раскрыта независимым исследователем Аонаном Гуаном. Сетевой песочница, предназначенная для блокировки внешнего доступа, могла быть обойдена с помощью внедрения нулевого байта в протокол SOCKS5. Уязвимость затрагивала все версии с момента запуска песочницы в октябре 2025 года — всего 130 релизов. Anthropic устранила проблему в апреле 2026 года без публичного уведомления. Это нарушение безопасности могло позволить злоумышленникам украсть ключи API и учетные данные AWS.

Claude Code

Компания Anthropic, позиционирующая себя как «безопасность прежде всего», в течение последних пяти месяцев никогда не обеспечивала настоящей безопасности сетевого песочницы своего основного инструмента разработки Claude Code.

Независимый исследователь безопасности Гуан Аонао опубликовал новое исследование 20 мая, в котором раскрыл второй полный обход уязвимости в сетевом песочнице Claude Code — атаку с внедрением нулевого байта в протокол SOCKS5, позволяющую процессам внутри песочницы обращаться к любым хостам, доступ к которым явно запрещен пользовательской политикой. Это означает, что с момента запуска функции песочницы в октябре 2025 года — за примерно 5,5 месяца и 130 релизов — каждый выпуск Claude Code содержал уязвимость, поддающуюся полному обходу. Это уже второй полный обход одной и той же защиты тем же исследователем.

Ответом Anthropic стало молчание: никаких уведомлений о безопасности, никаких CVE-номеров, никаких уведомлений для пользователей. Уязвимость была тихо исправлена в версии от 1 апреля, при этом в журнале обновлений не было ни слова о безопасности. То есть пользователь, продолжающий использовать старую версию, совершенно не знает, что его настроенная песочница изначально была бессмысленной.

Два ключа от одной двери

Claude Code — это AI-ассистент для программирования, выпущенный Anthropic в начале 2025 года, позиционирующийся как «AI-инженер, проживающий в терминале». В отличие от традиционных чат-подобных инструментов автодополнения кода, Claude Code имеет права на чтение и запись в кодовую базу пользователя и возможность выполнения команд, позволяя ему самостоятельно выполнять такие задачи, как навигация по коду, редактирование файлов и запуск тестов. Такая глубокая интеграция означает чрезвычайно высокий уровень риска безопасности — если модель будет скомпрометирована атакой через инъекцию промптов, злоумышленник получит доступ к правам пользователя в терминале, включая чтение локальных переменных среды, выполнение произвольных системных команд и доступ к ресурсам внутренней сети.

Для баланса безопасности и эффективности Anthropic в октябре 2025 года внедрила функцию сетевого песочницы (v2.0.24), позволяющую пользователям задавать белый список доменов через конфигурационный файл, ограничивая внешний сетевой доступ среды выполнения ИИ. Например, после настройки allowedDomains: [“*.google.com”] Claude Code может обращаться только к Google и его поддоменам, а весь остальной трафик блокируется. Официальная документация четко заявляет: «Пустой массив эквивалентен запрету всего сетевого доступа.»

Этот механизм реализован с помощью SOCKS5-прокси: нижележащая среда выполнения песочницы (@anthropic-ai/sandbox-runtime) запускает прокси-сервер, и процессы внутри песочницы не устанавливают сетевые соединения напрямую, а передают их через прокси, который выполняет фильтрацию доменов в соответствии с белым списком, настроенным пользователем в файле settings.json. Механизмы песочницы на уровне операционной системы — sandbox-exec на macOS и bubblewrap на Linux — правильно ограничивают агент только локальным адресом петли, а принятие решений о исходящих соединениях полностью передается этому SOCKS5-прокси.

Claude Code

Схема песочницы Claude Code, представленная в официальном блоге Anthropic: команды пользователя проходят через прокси SOCKS/HTTP, после чего попадают в песочницу, где операции с файлами и сетевой доступ строго контролируются по правам доступа.

Проблема заключается в реализации этого прокси. Два независимых исследования безопасности подтвердили, что его можно полностью обойти.

Claude Code

Timeline выявляет более глубокие проблемы: версия v2.0.55, выпущенная 26 ноября 2025 года, устранила первый обход, но второй обход существовал с первого дня запуска песочницы и оставался в этой версии. Обе уязвимости пересекаются во времени: с первого дня запуска функции песочницы до устранения последней уязвимости ни одна версия не была безопасной. Anthropic заявила в официальном блоге, что песочница «гарантирует, что даже при внедрении запроса влияние полностью изолировано», но существование этих двух обходов напрямую опровергает это обещание.

“One external report is luck. Two are implementation quality issues.” — according to Guan Aonan’s research report.

Полный обход нулевого байта

Второй метод обхода не является сложным с технической точки зрения, но целостность цепочки атаки заслуживает внимания.

Пользователь настроил белый список сети, например, разрешив доступ только к *.google.com. SOCKS5-прокси Claude Code при получении запроса на подключение использует метод JavaScript endsWith() для сопоставления суффикса имени хоста. Злоумышленник может просто вставить нулевой байт в имя хоста — создав строку вида attacker-host.com\x00.google.com. JavaScript интерпретирует нулевой байт как обычный символ UTF-16, и endsWith(“.google.com”) возвращает true, поэтому прокси разрешает соединение. Однако та же строка передаётся нижележащей C-функции getaddrinfo() для DNS-разрешения, где нулевой байт воспринимается как признак окончания строки, и фактически разрешается имя attacker-host.com. Один и тот же набор байтов интерпретируется по-разному двумя уровнями кода: фильтр считает, что вы обращаетесь к Google, а DNS-резолвер знает, что вы подключаетесь к серверу злоумышленника.

Это классическая атака «различие в парсерах», относящаяся к тому же техническому классу, что и HTTP-загрузка запросов, обнаруженная в 2005 году (CWE-158 / CWE-436). Суть заключается в том, что когда одни и те же данные проходят через два компонента с разными правилами семантической интерпретации, злоумышленник может использовать это различие, чтобы заставить один уровень принять «безопасное» решение, в то время как другой уровень выполняет «опасную» операцию. Такие уязвимости неоднократно появляются в области кибербезопасности, и главный урок всегда один и тот же: любая передача строк через границы доверия должна проходить строгую нормализацию и проверку, а не полагаться на то, что верхний уровень уже выполнил проверку.

Гуан Ао Нан воспроизвел уязвимость с помощью двух минимизированных скриптов Node.js: управляющий скрипт инициировал SOCKS5-соединение с обычным именем хоста и получил ответ BLOCKED; атакующий скрипт внедрил нулевой байт в имя хоста и получил ответ BYPASSED rep=0x00 — последний означает, что прокси-соединение было успешно установлено, и исходящий канал открыт. Claude Code самостоятельно подтвердил этот результат.

Claude Code

Полная повторная проверка уязвимости в четырех красных шагах в Claude Code v2.1.86 — подтверждение стратегии, обычное блокирование, обход нулевым байтом, подтверждение самим Claude

Этот обход песочницы, в сочетании с атакой на внедрение подсказок «Комментарии и контроль», описанной Гуан Баонанем в апреле, образует полную цепочку атаки (см.: Трехуровневая защита все еще недостаточна: одна заголовочная PR-запись может украсть ваш API-ключ: повторное проявление уязвимости безопасности AI-агента). Исследование «Комментарии и контроль» подтвердило, что все три инструмента AI для программирования подвержены атакам на внедрение подсказок, однако точки входа различаются: Claude Code подвержен только через заголовки PR, Gemini CLI — через комментарии или текст в Issues, а Copilot Agent использует HTML-комментарии для скрытого внедрения. Например, в Claude Code заголовок PR напрямую вставляется в шаблон подсказки без фильтрации или экранирования, и модель не может отличить человеческий замысел от вредоносного внедрения.

Объедините оба элемента — скрытые инструкции, заставляющие агента запускать вредоносный код в песочнице, и инъекция нулевых байтов для обхода сетевых блокировок — все данные, такие как API-ключи, учетные данные AWS, токены GitHub, внутренние API endpoint и т.д., находящиеся в переменных среды, могут быть переданы на любой сервер в интернете. Данные выходят через сам SOCKS5-прокси, и весь атакующий процесс происходит без промежуточных серверов, при этом именно этот прокси является компонентом, которому пользователь доверяет как границе безопасности. Злоумышленнику даже не нужны права на запись в репозиторий — достаточно просто создать публичный Issue. Человек-ревьюер в представлении GitHub видит обычный запрос на сотрудничество, тогда как AI-агент распознает полный вредоносный исходный код.

Даже Клод признал: уязвимость реальна

Одним из ключевых деталей этого раскрытия является сам Claude Code. Гуан Ао Nan напрямую передал код воспроизведения уязвимости для выполнения Claude Code и попросил его дать техническую оценку. После выполнения контрольного теста (обычное имя хоста блокируется) и теста атаки (обход блокировки с помощью пустого байта в имени хоста) Claude Code дал четкий вывод:

Это реальный обход фильтра сетевого песочницы, а не просто артефакт тестирования. Вы должны сообщить об этом в Anthropic по адресу https://github.com/anthropics/claude-code/issues.

Сам протестированный продукт подтвердил реальность и серьезность уязвимости, даже самостоятельно указал путь для ее сообщения. Этот деталь был полностью зафиксирован Гуан Баонанем в исследовательском отчете и стал источником заголовка статьи The Register: «Even Claude agrees hole in its sandbox was real and dangerous»

Claude Code

Обложка исследования Гуан Ао Nan — Claude Code, после того как был продемонстрирован его собственный漏洞, признал: «Это настоящий обход фильтра веб-песочницы», красная рамка выделяет ключевое подтверждающее утверждение

Ответ Anthropic после пяти месяцев молчания

Сама уязвимость вызывает обеспокоенность, но подход Anthropic заслуживает внимания со стороны отрасли.

Гуан Ао Nan представил подробный отчет о втором обходе песочницы через программу вознаграждений за уязвимости HackerOne (отчет №3646509) в начале апреля 2026 года компании Anthropic. Первичный ответ Anthropic был:

Спасибо за ваш отчет. После проверки этого обращения мы пришли к выводу, что оно является дубликатом существующего внутреннего отчета, который мы уже отслеживаем.

Отчет был сразу закрыт. Когда Гуан Аоnan уточнил план по CVE-номеру, Anthropic ответила 7 апреля:

Мы еще не решили, будет ли опубликован CVE по этому вопросу, и не можем предоставить сроки принятия этого решения.

Уязвимость была тихо устранена в версии v2.1.90. Ни одного безопасностного уведомления, ни одного CVE-номера, ни одной записи на странице безопасностных рекомендаций Claude Code, ни одного упоминания о безопасности в журнале обновлений. Полный обход, существовавший с первого дня запуска песочницы и продолжавшийся 5,5 месяцев и охватывавший около 130 версий, для пользователей казался незамеченным.

Этот подход не является первым подобным случаем. Первый обход (CVE-2025-66479) был оформлен практически идентично: Anthropic присвоила CVE только базовой библиотеке @anthropic-ai/sandbox-runtime (оценка CVSS всего 1,8, «Low»), а не пользовательскому продукту Claude Code; в журнале обновлений указано «Fixed proxy DNS resolution» (исправлено прокси-разрешение DNS), без упоминания уязвимости безопасности. Гуан Баонань в своем исследовательском отчете отметил: «Когда в React Server Components возникали серьезные уязвимости, React и Next.js получали отдельные CVE, Meta и Vercel публиковали уведомления о безопасности, и оба сообщества были должным образом проинформированы. Anthropic выбрала другой подход». На данный момент поиск по запросу «Claude Code Sandbox CVE» по-прежнему не выдает никаких официальных уведомлений о безопасности.

При решении проблемы кражи учетных данных Anthropic выбрала блокировку команды ps, но подход с черным списком изначально недостаточен — блокировка одной команды не мешает злоумышленникам использовать бесчисленные альтернативные пути. Правильным решением является четкое указание, какие инструменты необходимы агенту. В исследовании «Комментарии и контроль» Anthropic повысила рейтинг уязвимости до CVSS 9,4 (критический уровень) и перевела ее в частную программу вознаграждений, однако представитель компании заявил, что «данный инструмент изначально не был защищен от инъекций в подсказки». Производитель по умолчанию полагается на собственные возможности безопасности, но в архитектуре системы отсутствует многоуровневая защита; когда уязвимость выявляет этот пробел, «ограничения дизайна» становятся удобной категорией — она признает проблему, но одновременно в некоторой степени освобождает от обязанности публиковать уведомление о безопасности.

Более широкая отраслевая картина показывает, что та же проблема затрагивает не только Anthropic. В исследовании «Комментарии и контроль», опубликованном в апреле, было подтверждено, что Gemini CLI от Google и Copilot Agent от Microsoft GitHub подвержены той же самой уязвимости. Все три компании подтвердили и устранили проблему, но ни одна из них не опубликовала информационное сообщение о безопасности или присвоила номер CVE. Anthropic выплатила вознаграждение в размере 100 долларов, Google — 1337 долларов, а GitHub сначала закрыл отчет, заявив «известная проблема, не воспроизводится», но после представления доказательств обратного инжиниринга закрыл его с меткой «информационный» и выплатил 500 долларов. Всего — 1937 долларов — при этом эти три продукта используются большинством компаний из списка Fortune 100.

Ложное ощущение безопасности опаснее отсутствия мер безопасности. Пользователи без песочницы знают, что у них нет границ; пользователи с поврежденной песочницей считают, что они есть. Команда, запускающая Claude Code и настроившая белый список доменов, в течение 5,5 месяцев не осознавала рисков, и после обновления, увидев журнал изменений, пришла к выводу, что песочница всегда работала нормально. Кроме того, после раскрытия уязвимости отсутствие уведомления о безопасности означает, что пользователи не могут определить, подвергались ли они воздействию, и не имеют оснований для обратного аудита.

В условиях текущей ситуации сообщество безопасности пришло к консенсусу: нельзя доверять исключительно реализации песочницы производителя. SOCKS5-прокси Claude Code построен на стороннем npm-пакете с всего 10 звездами на GitHub, последний коммит которого датирован июнем 2024 года. Граница безопасности простирается между двумя средами выполнения — JavaScript и C — однако на границе доверия отсутствует даже базовая нормализация. Функция isValidHost(), добавленная в исправление и отвечающая за блокировку недопустимых символов, таких как нулевые байты, процентное кодирование, CRLF, должна была присутствовать с первого дня запуска песочницы. Гуан Нань предложил практическую защитную рамку — рассматривать AI Agent как сверхсотрудника, подлежащего принципу минимальных привилегий, с акцентом на многоуровневую защиту:

Claude Code

Репутация безопасности строится на прозрачности каждого раскрытия и каждого патча, а не на брендовых нарративах. Когда пользователи доверяют агенту свои учетные данные, производитель обязан обеспечить эффективность защитных мер и своевременно уведомлять о их сбое. Anthropic не выполнила ни одного из этих обязательств на песочнице Claude Code.

«Худший результат санкций — не то, что они что-то блокируют, а то, что они создают у людей ложное ощущение безопасности. Запуск санкций с уязвимостями хуже, чем не запускать их вообще», — отметил Гуан Ао Nan.

(Эта статья впервые опубликована в приложении Titanium Media, автор | Silicon Valley Tech_news, редактор | Чжао Янь)

Справочные материалы:

1. oddguan.com — Второй раз, тот же песочница: Обход песочницы Anthropic Claude Code Network позволяет извлечь данные (Aonan Guan, 2026.05.20)

2. The Register — Даже Клод согласен, что дыра в его песочнице была реальной и опасной (2026.05.20)

Отказ от ответственности: Информация на этой странице может быть получена от третьих лиц и не обязательно отражает взгляды или мнения KuCoin. Данный контент предоставляется исключительно в общих информационных целях, без каких-либо заверений или гарантий, а также не может быть истолкован как финансовый или инвестиционный совет. KuCoin не несет ответственности за ошибки или упущения, а также за любые результаты, полученные в результате использования этой информации. Инвестиции в цифровые активы могут быть рискованными. Пожалуйста, тщательно оценивайте риски, связанные с продуктом, и свою устойчивость к риску, исходя из собственных финансовых обстоятельств. Для получения более подробной информации, пожалуйста, ознакомьтесь с нашими Условиями использования и Уведомлением о риске.