Почему Anthropic не может закрыть дыру в Claude for Chrome уже восемь версий подряд?

Расширение Claude for Chrome, доступное всем платным подписчикам Anthropic в статусе «бета», содержит брешь, которая позволяет любому другому браузерному расширению с доступом к скриптам на подделывать действия пользователя. Через эту подделку сторонний код может заставить Claude прочитать почту в Gmail, последний открытый документ в Google Docs вместе с комментариями к нему и записи в календаре — причём без реального участия человека, который сидит за компьютером.
Почему Anthropic не может закрыть дыру в Claude for Chrome уже восемь версий подряд?
Изображение носит иллюстративный характер

Исследователи из Manifold Security сообщили о проблеме Anthropic 21 мая, когда актуальной была версия расширения 1.0.72. Компания отреагировала на следующий день, 22 мая. Но когда 7 июля Manifold скачала из Chrome Web Store обновлённую версию 1.0.80 и разобрала все 90 JavaScript-бандлов внутри неё, обработчик кликов в контент-скрипте и код инициализации боковой панели оказались побайтово идентичны тому, что было в исходно найденной версии. По состоянию на 14 июля публичного ответа от Anthropic так и не последовало, CVE не присвоен ни одной из двух уязвимостей, официального advisory тоже нет.
История уходит корнями в конец апреля, когда команда LayerX обнаружила проблему, получившую название ClaudeBleed. Суть в классической ошибке «confused deputy» — программа с реальными полномочиями выполняет действия от имени не того, кто её об этом попросил. Расширение Claude for Chrome доверяло происхождению как таковому, вместо того чтобы проверять, какой именно скрипт с ним общается. В мае Anthropic попыталась закрыть эту дыру, ограничив произвольные вызовы девятью зафиксированными идентификаторами задач, вшитыми прямо в бандл расширения. LayerX прямо указала, что первая попытка исправления оказалась неполной.
Список из девяти разрешённых задач выглядит так: три обучающих прогон-примера при онбординге, три готовых сценария под конкретные сервисы — DoorDash, Salesforce и Zillow, и три задачи, работающие с чувствительными данными пользователя: usecase-gmail, usecase-gdocs и usecase-calendar. Именно последняя тройка стала точкой входа для новой атаки.
Механика первой уязвимости довольно простая для такой серьёзной цели. Контент-скрипт на слушает клики по элементу с идентификатором claude-onboarding-button и считывает атрибут data-task-id этого элемента. Если значение совпадает с одним из девяти разрешённых идентификаторов, скрипт отправляет сообщение open_side_panel, запускающее задачу. Проблема в том, что обработчик никогда не проверяет флаг event.isTrusted — тот самый признак, которым браузер отличает настоящий клик пользователя от клика, сгенерированного скриптом.
В Manifold Security это продемонстрировали шестью строками кода, вставленными прямо в консоль браузера на странице . Логи показали isTrusted: false, но поддельный клик всё равно был принят системой как настоящий. По шкале CVSS команда оценила проблему в 7.7 балла («высокая опасность») для режима «спрашивать перед действием», когда пользователю всё же нужно нажать кнопку подтверждения, и в 9.6 балла («критическая опасность») для режима «действовать без вопросов», где задача выполняется молча, без единого запроса. Сама Manifold назвала исправление «однострочным» — достаточно отклонять синтетические клики на входе в обработчик. Но по данным на момент отчёта это исправление так и не вышло.
Вторая уязвимость связана с параметром в URL. Когда боковая панель Claude загружается по адресу с параметром?skipPermissions=true, она сразу переходит в режим skip_all_permission_checks — то есть начинает действовать без единого жеста пользователя и без экрана согласия. Красный предупреждающий баннер, сообщающий, что Claude теперь может совершать почти любые действия в сети, появляется — но уже после того, как привилегированная сессия запущена. Сегодня этот URL нельзя собрать откуда-то извне, только само расширение имеет к нему доступ. Но если какая-то будущая уязвимость откроет этот параметр менее привилегированному контексту — через обработчик сообщений, принимающий URL, регрессию при построении панели или XSS в странице настроек — комбинация с поддельным кликом даст полностью бесшумное чтение аккаунта пользователя. Manifold рекомендует вообще перестать читать режим разрешений из URL и всегда загружать панель в режиме запроса подтверждения.
С точки зрения классификации OWASP Top 10 для LLM-приложений первая проблема относится к категории Indirect Prompt Injection, вторая — к Excessive Agency. Обе воспроизводятся независимо от того, какая модель загружена в боковой панели — Opus, Sonnet или Fable. Ошибка сидит в самом расширении, а не в модели.
Хронология переписки с Anthropic выглядит противоречиво. Отчёт о поддельном клике компания закрыла, сославшись на то, что базовая проблема с границей доверия уже отслеживается в рамках более раннего отчёта о ClaudeBleed, который «остаётся открытым в ожидании полного исправления». Отчёт про URL-параметр закрыли с пометкой «информативный» — Anthropic посчитала, что параметр устанавливается только самим расширением для задач, которые пользователь уже разрешил выполнять без присмотра. При этом до 9 июня внутренний тикет, который должен был отражать исправление, был помечен как «решённый». Проверка от 7 июля это опровергла.
Это не первый подобный случай в истории продукта. Ранее в 2025 году был закрыт отдельный баг, позволявший любому сайту незаметно внедрять инструкции в расширение через промпт-инъекцию. А в Claude Code недавно нашли уязвимость, из-за которой враждебный код-репозиторий мог вытащить у разработчика API-ключи Anthropic — похожий паттерн отказа одной и той же модели доверия.
До появления настоящего патча пользователям остаётся вручную отключить режим «действовать без вопросов» и проверить разрешения всех расширений, имеющих доступ к чтению и записи данных на . Это восстанавливает шаг подтверждения, но саму уязвимость с поддельным кликом не устраняет.
По сути обе находки бьют в одну и ту же границу доверия: Claude принимает клик, сгенерированный скриптом, за настоящее намерение человека, и при этом состояние разрешений можно задать через параметр в адресной строке. Восемь версий подряд, от 1.0.72 до 1.0.80, эта граница остаётся ровно там же, где её обнаружила команда Manifold Security в мае.


Новое на сайте

20868Уязвимости Plex открыли путь майнерам и Linux-бэкдору 20867Взлом OpenCode Console: под угрозой могли оказаться ключи OpenAI, Anthropic и Google 20866Rank Math PRO: заражённое обновление оставило на сайтах самовосстанавливающийся бэкдор 20865Как исследовательские модели OpenAI обходили ограничения и присваивали чужие данные 20864Атака на BeyondTrust: шпионская группа получила доступ к серверам поддержки 20863Как пакет imgdecode превращает npm-зависимость в загрузчик вредоносного кода? 20862Как PEERSTITCH обходит проверки VPN-сессий FortiOS? 20861Что происходит, когда ИИ-агент выходит за пределы тестовой среды? 20860Как 37-летняя ошибка открыла путь к root в OpenBSD 7.9? 20859ИИ-модели для SOC: точный ответ зависит от улик 20858Как одна учётная запись ConnectWise открыла доступ к 173 арендаторам Microsoft 365? 20857Пять минут до заражения: как подменили обновления AOMEI Backupper 20856Ловушка под видом регистрации: как UAT-11985 крадёт аккаунты Google 20855Может ли виртуальная машина прочитать память хоста? 20854Как дешёвые Android-смартфоны превращаются в чужие прокси?
Ссылка