Критическая уязвимость в Ray позволяла выполнить код через браузеры Safari и Firefox

Cybersecurity and Infrastructure Security Agency, CISA

Агентство CISA добавило в каталог Known Exploited Vulnerabilities (KEV) уязвимость CVE-2025-62593 в движке Ray. KEV - это перечень проблем, по которым уже есть подтверждённые случаи эксплуатации. Найденная уязвимость позволяет удалённо выполнить код на компьютере разработчика через браузеры Safari и Firefox. Разработчики Ray выпустили исправление в версии 2.52.0.

Уязвимость CVE-2025-62593

Ray представляет собой движок для распределённых вычислений, применяемый в основном в проектах машинного обучения и обработки больших данных. Разработчики часто запускают его локально, чтобы тестировать свои модели. Веб-интерфейс Ray, доступный по умолчанию на порту 8265, позволяет управлять заданиями, просматривать логи и взаимодействовать с кластером. В этом интерфейсе нет аутентификации, и это сознательное решение команды проекта. Чтобы защититься от атак из браузера, они использовали простую эвристику: запросы с заголовком User-Agent, начинающимся на "Mozilla", считались браузерными и блокировались. Предполагалось, что браузеры не позволяют изменять этот заголовок через JavaScript.

Однако это предположение оказалось неверным. В Firefox и Safari вызов fetch API позволяет подменить User-Agent на произвольную строку. Так что вредоносный сайт может отправить запрос к API Ray, просто указав в заголовке "Other" или что-то подобное. В Chrome по историческим причинам такой возможности нет, поэтому он не подвержен данной конкретной атаке. При этом полагаться на эту случайность нельзя: другие популярные браузеры уязвимы, и в будущем ситуация может измениться.

Чтобы атака сработала, злоумышленнику нужно обмануть браузер и заставить его обратиться к локальному серверу Ray. Для этого применяется DNS-ребайндинг - техника, при которой вредоносный сайт сначала выглядит как обычный удалённый ресурс, а затем в ответ на запрос начинает отдавать IP-адрес жертвы, например 127.0.0.1. Браузер продолжает считать, что работает с легитимным доменом, и разрешает JavaScript-коду выполнять запросы к этому адресу. Готовые инструменты, такие как фреймворк Singularity, автоматизируют эту атаку и делают её доступной даже неопытному злоумышленнику.

В результате пользователю достаточно зайти на вредоносную страницу или увидеть рекламу с вредоносным кодом. JavaScript на странице отправляет POST-запрос к API Ray, например к эндпоинту создания заданий. Поскольку сервер Ray не проверяет подлинность запроса, команда, указанная в задании, будет выполнена на машине разработчика. В доказательстве концепции показан запуск калькулятора, но с тем же успехом злоумышленник может выполнить любую команду: похитить файлы, установить шпионское ПО или программу-вымогатель.

Отдельная опасность заключается в том, что браузер жертвы можно использовать для атаки на другие экземпляры Ray внутри корпоративной сети. Если разработчик работает в офисе, его локальный сервер Ray может быть доступен другим устройствам в сети. Атакующий, контролирующий вредоносный сайт, наводит браузер на внутренний IP-адрес другого сервера Ray, и тот выполняет команды. Такой приём называют использованием "сбитого с толку посредника": браузер делает запрос от имени пользователя, который имеет доступ к внутренним ресурсам.

Серьёзность проблемы подтверждается оценкой 9.4 балла по шкале CVSS v4.0. Это критический уровень. CISA уже добавила уязвимость в каталог KEV, то есть на сегодняшний день зафиксированы атаки с её использованием. Публичные данные об уязвимости появились 26 ноября 2025 года. Организациям, применяющим Ray, рекомендуется срочно обновить компоненты до версии 2.52.0 или выше.

В новой версии Ray проблема устранена. Кроме того, в ней появилась функция аутентификации, которая по умолчанию отключена. Разработчикам стоит не только обновиться, но и включить аутентификацию, чтобы защитить веб-интерфейс от несанкционированного доступа. Также можно ограничить доступ к порту 8265 с помощью файрвола, разрешив подключения только с доверенных адресов. Эти меры помогут снизить риск даже в случае, если злоумышленник сможет запустить код в браузере.

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

Ссылки

Комментарии: 0