Тёмно-синяя редакционная иллюстрация с заголовком «Любая веб-страница может достучаться до агента на вашей машине»: открытое окно браузера с подписью «страница, которую вы посетили» слева посылает тонкую янтарную линию через тёмный промежуток в светящийся шлюзовой узел с подписью «шлюз 127.0.0.1», который веером расходится тремя линиями к трём небольшим узлам устройств с подписью «сопряжённые узлы».
AI Safety Incidents

ClawJacked: любой веб-сайт мог осуществить брутфорс-атаку на локальный агент OpenClaw

Автор

Alistair Wren

Дата публикации

Новые модели · 20Все модели →
Бенчмарки: Artificial Analysis · обновляется ежедневно
Назад ко всем статьям

ClawJacked, уязвимость, которую Oasis Security раскрыла в открытом AI-агенте OpenClaw 26 февраля 2026 года, позволяла любому сайту, который посещал разработчик, открыть соединение с агентом, работающим на его собственной машине, и подбирать его пароль, пока тот не передаст управление. Не требовалось ни клика, ни плагина, ни запроса. Главной целью был шлюз, который оркестрирует агента: злоумышленник, проникший внутрь, мог напрямую общаться с агентом, выгрузить его конфигурацию, перечислить все сопряжённые устройства и прочитать его журналы. Oasis, поставщик программного обеспечения для управления агентным доступом, продемонстрировала цепочку от начала до конца в собственной лаборатории и сообщила о ней в частном порядке, а OpenClaw выпустила исправление менее чем за 24 часа. Ни один из источников, цитируемых в этой статье, не фиксирует использование атаки против реального пользователя. Архив классифицирует этот эпизод как инфраструктурный инцидент высокой степени серьёзности с датой 25 февраля 2026 года с точностью до дня и без зафиксированного реального ущерба, наряду с остальными своими записями об OpenClaw в Orca AI Incident Archive.

Три значения по умолчанию, одна цепочка

OpenClaw — это самостоятельно размещаемый персональный агент, которым пользователи управляют через веб-панель или терминал и который подключается к приложениям для обмена сообщениями, календарям и инструментам разработчика и действует внутри них. В его центре находится шлюз — локальный сервер WebSocket, который Oasis называет «мозгом операции»: он обрабатывает аутентификацию, хранит конфигурацию, управляет сеансами чата и направляет команды узлам, таким как сопутствующее приложение для macOS или iPhone. Аутентификация осуществляется по токену или паролю, а шлюз по умолчанию привязывается к localhost — при явном допущении, что локальный доступ по своей сути считается доверенным (Oasis Security, 26 февраля 2026 г.).

Три следствия этого допущения, связанные в цепочку. Во-первых, браузеры не применяют правила cross-origin к WebSocket-соединениям так, как к обычным HTTP-запросам, поэтому JavaScript на любой странице, которую посещает пользователь, может открыть сокет к локальному порту шлюза, и на экране ничего не будет видно. Во-вторых, ограничитель частоты запросов шлюза полностью освобождал loopback-соединения, поэтому неудачные попытки ввода пароля с 127.0.0.1 не подсчитывались, не ограничивались и не записывались в журнал. В-третьих, шлюз автоматически одобрял сопряжения устройств, поступающие с localhost, поэтому аутентифицированный скрипт мог зарегистрировать себя как доверенное устройство без запроса подтверждения, который вызвало бы удалённое устройство.

Oasis измерила частоту угадывания в собственной лаборатории и сообщила о ней в раскрытии информации: «В наших лабораторных тестах мы добились устойчивой скорости в сотни попыток подбора пароля в секунду, используя только JavaScript в браузере. При такой скорости список распространённых паролей исчерпывается менее чем за секунду, а на большой словарь уйдут всего несколько минут. Пароль, выбранный человеком, не имеет шансов». BleepingComputer, освещавший это раскрытие 1 марта 2026 года, описывает те же три шага и в том же порядке.

A four-panel card titled 'Three defaults, chained', numbered 01 to 04: a page opens a WebSocket to the local gateway; the password is guessed at hundreds of attempts per second because loopback was exempt from the rate limiter; the script self-registers as a trusted device without a prompt; and the result is an authenticated operator session.

Что получает злоумышленник и что на самом деле показал Oasis

После аутентификации скрипт получал сеанс оператора с правами уровня администратора. Oasis перечисляет четыре действия, которые он после этого может выполнять напрямую: отправлять сообщения ИИ-агенту и читать его ответы, выгружать конфигурацию шлюза, раскрывающую используемых ИИ-провайдеров, модели и каналы обмена сообщениями, перечислять все подключённые узлы с указанием их платформы и IP-адреса, а также читать журналы приложения. Далее Oasis описывает, но не демонстрирует эскалацию: указание агенту искать API-ключи в истории Slack разработчика, чтение личных сообщений, эксфильтрацию файлов со спаренных устройств или выполнение произвольных shell-команд на любом спаренном узле. Резюме компании о результате таково: для разработчика с типичными интеграциями OpenClaw это равносильно «полной компрометации рабочей станции, инициированной из вкладки браузера».

Демонстрация, опубликованная Oasis вместе с видео proof-of-concept, охватывает меньший объём, чем это описание: браузер на постороннем сайте угадал пароль шлюза, подключился с полными правами и успешно взаимодействовал с агентом пользователя, при этом пользователю не было показано никаких признаков этого. Экфильтрация файлов и выполнение команд оболочки описаны как то, что становится возможным благодаря доступу, а не как шаги, выполненные в ходе proof-of-concept. Это различие важно, когда материал воспринимается как реально произошедший инцидент, а не как демонстрация.

Патч появился в 2026.2.25, а не в 2026.2.26

Oasis призвала читателей обновиться до версии 2026.2.25 или более поздней, и собственное уведомление OpenClaw с этим согласуется. В GitHub-уведомлении GHSA-jmmg-jqc7-5qf4 уязвимыми указаны версии 2026.2.24 и ниже, исправленными — 2026.2.25 и выше, а авторство отчёта приписано @luz-oasis — ведущему исследователю Oasis Эладу Лузу. Отметка времени в реестре npm для 2026.2.25 — 04:16 UTC 26 февраля 2026 года, а примечания к выпуску этой версии описывают исправление формулировками, которые один к одному соответствуют трём настройкам по умолчанию: «Security/Gateway WebSocket auth: enforce origin checks for direct browser WebSocket clients beyond Control UI/Webchat, apply password-auth failure throttling to browser-origin loopback attempts (including localhost), and block silent auto-pairing for non-Control-UI browser clients».

Два новостных сообщения указывают другой номер версии. BleepingComputer сообщает, что исправление было «выпущено в версии 2026.2.26 26 февраля», и SecurityAffairs повторяет, что 2026.2.26 была версией, устранившей проблему, тогда как в его собственном абзаце с рекомендациями читателям говорится обновляться до 2026.2.25 или более поздней. Infosecurity Magazine, освещая раскрытие 2 марта 2026 года, ссылается на 2026.2.25. Версия 2026.2.26 существует, но npm фиксирует её в 23:59 UTC 26 февраля, примерно через двадцать часов после 2026.2.25, и её примечания представляют собой отдельный пакет мер по усилению защиты. Исправление, которое следует искать читателю, — это то, что в 2026.2.25.

Идентификатор появился позже. Рекомендация GitHub была опубликована 3 марта 2026 года под CVE-2026-32025, а запись NVD для неё была опубликована 19 марта 2026 года с базовой оценкой CVSS 3.1 7,5 и рейтингом «высокая» от NVD как основного оценщика и от VulnCheck как вторичного. Сама рекомендация осторожнее оценки: в её собственном поле серьёзности указано «умеренная», а в тексте ошибка называется «серьёзной, но обусловленной», с перечислением четырёх предварительных условий — доступность шлюза через loopback, использование парольной аутентификации, открытие жертвой контролируемого злоумышленником веб-контента и возможность подобрать пароль за практически осуществимое число попыток. В ней также прямо говорится, чем ошибка не является: «Сама по себе это не проблема класса RCE, доступная без аутентификации из интернета; это локальный пробел в усилении аутентификации на основе браузерного источника с существенным влиянием при вышеуказанных условиях».

A vertical timeline card with seven dated rows: 28 to 31 January 2026 an independent scan counts 42,665 internet-exposed instances; 9 February SecurityScorecard counts 40,214 with 35.4% flagged vulnerable; 26 February 04:16 UTC npm release 2026.2.25 ships the fix; 26 February Oasis publishes; 1 to 2 March outlets report it; 3 March the GitHub advisory is published as CVE-2026-32025; 19 March NVD publishes at CVSS 7.5.

Откуда берётся 42,665 и почему это не число ClawJacked

В сводке архива указано, что на момент раскрытия были открыты 42 665 экземпляров, и отмечено, что SecurityScorecard приводит другую цифру — 40 214, из которых 35,4% были уязвимы. Ни один из трёх источников, указанных для этой записи, не содержит ни одного из этих чисел — Oasis, BleepingComputer и SecurityAffairs описывают уязвимость, но не приводят количество установленных экземпляров. Обе цифры взяты откуда-то ещё, и обе были опубликованы до появления ClawJacked.

Число 42 665 — результат независимого сканирования. Маор Даян, исследователь безопасности, опубликовавший свои выводы на Medium, создал сканер ClawdHunter v3.0 и прогнал его по данным Shodan и Censys, собранным с 28 по 31 января 2026 года; он сообщил о «как минимум 42 665 экземплярах» OpenClaw, публично открытых в интернете, из которых 5 194 были активно подтверждены как уязвимые, и 93,4% из подтверждённых демонстрировали обход аутентификации. Число 40 214 — от команды STRIKE компании SecurityScorecard: в исследовании, опубликованном 9 февраля 2026 года, она подсчитала экземпляры OpenClaw, открытые в интернете, и отметила 15,2 тыс. как уязвимые к удалённому выполнению кода, при этом «35,4% наблюдаемых развёртываний были отмечены как уязвимые». В собственных сводных пунктах SecurityScorecard приводятся 42,9 тыс. уникальных IP-адресов, на которых размещены открытые панели управления, наряду с 40 214 подтверждёнными экземплярами в основном тексте — два разных измерения в одном отчёте.

Ни одно из этих чисел не измеряет охват ClawJacked, поскольку оба считают экземпляры, отвечающие на публичном интерфейсе. Предусловие ClawJacked — противоположная конфигурация: шлюз, привязанный к loopback, в режиме пароля, на машине, пользователь которой открывает враждебную страницу. Сервер, учтённый в интернет-сканировании, может находиться за собственной аутентификацией и быть не затронут этой ошибкой, тогда как ноутбук, который никогда не появляется в таком сканировании, — это ровно та цель, которую описал Oasis. Поэтому формулировка самого архива «на момент раскрытия» привязывает январский подсчёт популяции к февральской уязвимости. Эти подсчёты — реальные измерения того, насколько OpenClaw был подвержен риску; они не являются подсчётом машин, которые ClawJacked мог бы захватить. Эта статья не выносит решение в споре — запись не помечена как спорная — но происхождение этих двух цифр можно проверить, и оно не поддерживает трактовку «на момент раскрытия».

A two-column comparison card headed 'Exposed is not the same as hijackable'. The left column, 'What the exposure scans counted', lists 42,665 internet-reachable instances from a January 2026 scan and 40,214 from SecurityScorecard's February 2026 census with 35.4% flagged vulnerable. The right column, 'What ClawJacked required', lists a loopback-bound gateway in password mode, a user visiting attacker-controlled content and a guessable password.

Что установлено, а что — нет

Установлено: что Oasis Security обнаружила цепочку и продемонстрировала её в лаборатории; что собственное уведомление и примечания к выпуску OpenClaw подтверждают все три модели поведения — отсутствие проверки origin для браузерных WebSocket-клиентов, отсутствие ограничения частоты попыток ввода пароля через loopback, автоматическое сопряжение без уведомления — и что в 2026.2.25 каждая из них была изменена; что исправление вышло в течение суток после отчёта; и что три издания, помимо блога самого обнаружившего, осветили это. Оценка уверенности архива A согласуется с этими данными, и ничто здесь не оспаривается участвующими сторонами.

Не установлено: что кто-либо использовал его. Здесь не цитируется источник, и ни один источник, найденный в публикациях вокруг раскрытия, не сообщает о реальной компрометации, пострадавшем или похищенных данных. Демонстрация Oasis — лабораторная, а отчёт описывает возможности атакующего, а не наблюдаемую атаку. Это согласуется с тем, что архив не фиксирует реального ущерба, и это самый важный уточняющий момент в этой истории: это запись об уязвимости, а не отчёт о взломе.

Две ходящие в обращении метки неверны, и обе легко унаследовать. Несколько вторичных публикаций привязывают CVE-2026-25253 к ClawJacked. Запись NVD для этого идентификатора описывает другую уязвимость в том же продукте: OpenClaw до 2026.1.29 принимает gatewayUrl из строки запроса и подключается к нему без запроса подтверждения, отправляя токен; это кража токена в один клик с оценкой CVSS 8.8, опубликованная 1 февраля 2026 года и исправленная 29 января. Это январская уязвимость, с другим механизмом и другим патчем. Идентификатор ClawJacked — CVE-2026-32025. Тем временем в Infosecurity Magazine ClawJacked описали как косвенную инъекцию промпта; цепочка, задокументированная Oasis, вообще не включает ни промпта, ни решения модели — это обход аутентификации, который заканчивается сеансом оператора.

Что изменилось после этого

OpenClaw исправила её, опубликовала уведомление о безопасности и указала автора отчёта, а CVE был присвоен в течение недели после публикации. Рекомендации Oasis для организаций выходят за рамки патча: провести инвентаризацию агентов и ассистентов, работающих на машинах разработчиков, обновить каждый экземпляр, проверить, какие учётные данные и возможности есть у каждого из них, и отозвать неиспользуемые, а также управлять агентами как нечеловеческими идентичностями с проверкой намерений, применением политик, доступом точно в срок и аудиторским следом от человека к агенту и к действию. Компания продаёт программное обеспечение в последней категории, и это стоит учитывать, сопоставляя последнюю рекомендацию с первыми тремя.

Более широкий контекст таков: ClawJacked был лишь одним уведомлением в потоке. База рекомендаций GitHub содержит большую партию уведомлений OpenClaw, датированных 3 марта 2026 года — в тот же день, когда было опубликовано уведомление ClawJacked, — и охватывающих отдельные ошибки аутентификации, сопряжения, обхода путей и выхода из песочницы в версиях с 2026.2.19 по 2026.2.26. Схема, которую сохраняет запись ClawJacked, уже, чем «AI-агенты небезопасны», и полезнее: шлюз рассматривал loopback как границу доверия, а браузер сделал это предположение неверным. Любой локальный сервис, который освобождает 127.0.0.1 от ограничения частоты, и любая процедура сопряжения устройств, которая автоматически одобряет локальных вызывающих, наследуют ту же схему, независимо от того, стоит ли за этим AI-модель. В данном случае модель никогда не была уязвимым компонентом — им был слой аутентификации вокруг неё.

© 2026 OrcaRouter