AI Фактор

Дірка в Claude Code Desktop зливала ключі розробників

Зміни в інструментах 21.10.2026
Дірка в Claude Code Desktop зливала ключі розробників

Noma Labs знайшла вразливість SneakPeek (CVSS 8.7) у preview pane Claude Code Desktop: шкідливий HTML, відкритий через Claude для рев'ю чи редагування, виконував JS у Chromium без запиту на дозвіл і через fetch() читав SSH-ключі, AWS та GitHub/npm токени, Docker- і Kubernetes-креди, Claude OAuth-токени — дані йшли на сервер атакера через navigator.sendBeacon().

Anthropic закрила баг не одразу: патч від 24 липня дослідники обійшли того ж дня через Web Workers із blob:-URL, остаточне виправлення — у версії 1.30096.1, розповсюджене автооновленням 17 серпня.

Три дірки, які склалися в одну

SneakPeek не була однією помилкою, а комбінацією трьох дрібних дефектів у preview pane Claude Code Desktop. Файли менші за 256KB відкривались як data: URL із Content Security Policy, що блокувала виконання JavaScript. Більші файли замість цього завантажувались через file:// URL — а до них CSP уже не застосовувалась. Третій дефект: фільтр запитів не блокував доступ до локальних файлів, коли Claude рендерив статичний HTML прямо з диска. Жодна з цих речей сама по собі не критична, але разом вони відкривали шлях до виконання довільного JS без запиту дозволу.

Дослідник Noma Labs Елі Айнгорн (Eli Ainhorn) показав атаку на публічному репозиторії зі звітом про code coverage, де в HTML-файл був вбудований шкідливий JS. Розробник, який клонував репозиторій і просив Claude переглянути або відредагувати цей звіт, запускав payload у момент, коли preview pane відкривав файл — без жодного додаткового кліка чи підтвердження.

Таймлайн: від звіту до фінального патча

Noma Labs повідомила Anthropic про вразливість 4 липня. Компанія підтвердила проблему 9 липня й оцінила її за CVSS v4.0 на 8.7. 24 липня Anthropic випустила перший патч, що блокував прямі запити fetch() і XMLHttpRequest до шляхів file://. Того ж дня дослідники Noma Labs обійшли патч: вони перенесли читання файлів у Web Workers, створені з blob: URL — ці воркери все ще могли читати чутливі файли й передавати вміст в основний потік для ексфільтрації.

Anthropic підтвердила неповноту виправлення 3 серпня. За даними Noma Labs, компанія закрила решту проблем у версії 1.30096.1 і пізніших, оновлення розійшлося через автооновлення 17 серпня. На момент звіту дослідників призначення CVE та публікація GitHub Advisory ще залишались відкритими.

Чому це не збій моделі, а дірка в додатку

Крістал Морін (Sysdig) наголошує: «SneakPeek — не провал моделі, вона жила в додатку навколо неї». За її словами, більшість підходів до безпеки ШІ зосереджена на тренуванні, фільтрах безпеки й системних промптах моделі, а не на поверхні атаки самого застосунку. Є й проблема видимості для захисту: шкідливий скрипт виконувався в процесі рендерингу preview pane, а не як дія, яку зробив агент, — тому логи на рівні агента цю активність не показали б.

Рам Варадараджан (Acalvio) звертає увагу на механіку: три на вигляд незначні прогалини, з'єднані разом, дозволили вкрасти AWS-креди та SSH-ключі без жодного кліка користувача, а обхід першого патча доводить, що жоден окремий рівень захисту не тримається вічно. Як практичну міру він пропонує розміщувати decoy-креди на машинах розробників і на шляхах, доступних AI-агентам: якщо агент — зламаний чи ні — торкається такого фейкового ключа, захист отримує сигнал high-confidence, навіть не знаючи заздалегідь, яка вразливість була використана.

Раніше в теміClaude Code: нова змінна для моделі auto modeПізніше в темі8 КБ skill замінює 207-тулзовий MCP для реверс-інжинірингу
Читати в ТелеграміПрактика ШІ в бізнесі — щодня, без хайпу