Інструмент програмування Claude Code AI виявлено з серйозною безпековою вразливістю

icon MarsBit
Поділитися
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary iconКороткий зміст

expand icon
З’явилася інформація про серйозну вразливість у AI-інструменті Anthropic Claude Code, як це виявив незалежний дослідник Аонань Гуан. Сітковий пісочниця, призначена для блокування зовнішнього доступу, могла бути обійдена за допомогою ін’єкції нульового байта у протокол 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 — правильно обмежують агента локальним адресом loopback, а прийняття рішень щодо вихідних з’єднань повністю делеговано цьому SOCKS5-проксі.

Claude Code

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

Проблема полягає в реалізації цього проксі. Дві незалежні безпекові дослідження підтвердили, що його можна повністю обійти.

Claude Code

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

Одна зовнішня звітність — це випадковість. Дві — це проблема з якістю впровадження.” — зазначається у дослідженні Гуан Аоная.

Повний обхід порожнього байта

Технічний принцип обходу другого разу не є складним, але цілісність ланцюжка атаки варта уваги.

Користувач налаштував білий список мережі, наприклад, дозволяючи доступ лише до *.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

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

Поєднайте обидва — приховані команди, що дозволяють агенту запускати шкідливий код у пісочниці, та ін’єкція нульових байтів для обходу мережевого блокування — дозволяють вивести дані, такі як API-ключі, облікові дані AWS, GitHub-токени, внутрішні API endpoint-и тощо, на будь-який сервер у Інтернеті. Дані виводяться безпосередньо через SOCKS5-проксі, і атака не вимагає проміжних серверів, тоді як саме це проксі є компонентом, якому користувач довіряє як безпечній межі. Зловмиснику взагалі не потрібні права на запис до репозиторію — достатньо надіслати публічне питання. Людські перевіряючі бачать у візуалізації GitHub звичайний запит на співпрацю, тоді як AI-агент розпізнає повний шкідливий код.

Навіть Клауді визнає: вразливість є реальною

Однією з ключових деталей цього розкриття є сам Claude Code. Кун Ао'н безпосередньо надав код для відтворення вразливості 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 погодився, що вразливість у його пісочниці була реальною та небезпечною).

Claude Code

Обкладинка дослідження Гуан Яона — Claude Code після виявлення власних вразливостей підтвердив: «Це справжній обхід мережевого пісочниці», червоним квадратом виділено ключове підтвердження

Відповідь Anthropic після п’яти місяців мовчання

Сама вразливість викликає занепокоєння, але підхід Anthropic варто ретельно проаналізувати галузі.

Гуан Ао'нань 2026 року на початку квітня подав детальний звіт про друге обходження пісочниці через програму винагород за виявленням вразливостей HackerOne (звіт №3646509) компанії 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), без згадки про безпекову вразливість. Гуан Яо Nan у дослідженні написав: «Коли в React Server Components виявлено серйозну вразливість, React і Next.js отримали окремі CVE, Meta і Vercel опублікували попередження про безпеку, і обидва спільноти були повністю інформовані. Anthropic вибрала інший підхід». На даний момент пошук «Claude Code Sandbox CVE» все ще не дає жодних офіційних попереджень про безпеку.

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

Більш широка галузева картина показує, що та сама проблема стосується не лише 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, мала б існувати з першого дня запуску пісочниці. Гуан Яо Nan запропонував практичну рамку захисту — розглядати 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 — Навіть Claude погоджується, що діра в його пісочниці була реальною і небезпечною (2026.05.20)

Відмова від відповідальності: Інформація на цій сторінці може бути отримана від третіх осіб і не обов'язково відображає погляди або думки KuCoin. Цей контент надається лише для загального інформування, без будь-яких запевнень або гарантій, а також не може розглядатися як фінансова або інвестиційна порада. KuCoin не несе відповідальності за будь-які помилки або упущення, а також за будь-які результати, отримані в результаті використання цієї інформації. Інвестиції в цифрові активи можуть бути ризикованими. Будь ласка, ретельно оцініть ризики продукту та свою толерантність до ризику, виходячи з ваших власних фінансових обставин. Для отримання додаткової інформації, будь ласка, зверніться до наших Умов використання та Розкриття інформації про ризики.