Эксплойт React2Shell взломал 766 систем

Один HTTP-запрос. Этого хватило хакерам, чтобы проникнуть в 766 серверов Next.js и выкачать учётные данные вроде SSH-ключей и токенов AWS. Cisco Talos только что приоткрыл завесу над этим автоматизированным кошмаром.

Схема цепочки эксплуатации React2Shell от HTTP-запроса до выгрузки учётных данных через Nexus Listener

Key Takeaways

  • React2Shell (CVE-2025-55182) позволяет неаутентифицированный RCE в Next.js, эксплуатируется UAT-10608 для массовой кражи учётных данных.
  • Автоматизированное сканирование через Shodan/Censys задело 766 систем за 24 часа, выгрузка SSH-ключей, облачных токенов и прочего через Nexus Listener.
  • Архитектурный сдвиг в SSR выставляет секреты бэкенда; меняйте всё и пересматривайте границы фронтенда и бэкенда.

Один некорректный HTTP-запрос попадает в публичное приложение Next.js. Бум — произвольный код выполняется в серверном процессе Node.js. Учётные данные начинают утекать: приватные SSH-ключи, токены AWS, секреты GitHub. Всё автоматизировано, всё в промышленных масштабах.

Расширим картину. Это не целенаправленный удар по Fortune 500. Это UAT-10608 — угрозовый актор, которого отслеживает Cisco Talos, проходящийся по уязвимым React-сборкам через React2Shell — это CVE-2025-55182, уязвимость с идеальным CVSS-рейтингом 10. Они взломали как минимум 766 систем за 24 часа, выгребли свыше 10 000 файлов. И вот что интересно: Talos заглянул в их собственную неряшливую панель Nexus Listener, оставленную нараспашку, как незапертая дверь гаража.

Эксплойт, которого не должно быть — но он есть

React2Shell процветает, потому что разработчики обожают серверный рендеринг (SSR) в Next.js. Это быстро, SEO-дружественно, притягивает пользователей. Но вот загвоздка: эта уязвимость в конфигурации React позволяет неаутентифицированным атакующим инжектировать код прямо в рантайм Node.js. Без аутентификации. Без хлопот. Только специально сформированный пэйлоад по HTTP.

Talos表述ляет это без прикрас:

«Широкий охват жертв и шаблон недискриминационного таргетинга соответствует автоматизированному сканированию — вероятно, на основе данных о хостах из сервисов вроде Shodan, Censys или собственных сканеров для перечисления публично доступных развёртываний Next.js и проверки их на описанные уязвимости конфигурации React».

Они сканируют интернет как пылесосы — Shodan и Censys кормят зверя. Публичные приложения Next.js? Идеальные цели. Один пробный запрос, одна проверка уязвимости — и игра окончена.

Но почему именно сейчас? Доминирование React в фронтенд-мире означает миллионы развёртываний. SSR меняет архитектуру: клиентские меры безопасности испаряются, когда код выполняется на сервере. Атакующим не нужно фишинг или spear — они просто автоматизируют.

Решение в трёх словах? Заплатить патчем.

Реальность сложнее. Автоматизированные скрипты после взлома проходят по процессам: рантаймы JavaScript, истории SSH, облачные metadata API, токены Kubernetes, переменные Docker. Всё подряд. Выгружают в C&C, затем в Nexus Listener — веб-приложение для просмотра добычи. Talos нашёл одну такую открытой, с каталогом ключей ИИ, платёжных учёток, токенов коммуникаций. Меняйте всё, советуют они. Вчера.

Как React2Shell вскрывает ваши секреты

Представьте цепочку. Шаг первый: сканирование баннеров Next.js (легко, заголовки кричат об этом). Шаг второй: проба уязвимости в конфиге React. Уязвимо? Отправляем пэйлоад. Node.js выполняет его на сервере — RCE достигнута.

Затем жатва. Скрипты методично перебирают всё.

  • Выгрузка запущенных процессов.
  • Захват переменных окружения JS-рантайма.
  • Ухватывание SSH-ключей, историй.
  • Обход облачных API (метаданные AWS? Здрасьте, токены instance role).
  • Сервисные аккаунты Kubernetes.
  • Конфиги контейнеров.
  • Даже командные строки шелла.

Всё архивируется, отправляется в C&C. Nexus Listener позволяет атакующим просматривать добычу как Dropbox для краденого. Взгляд Talos? 766 хостов за день. Без разбора. Боты повсюду.

Это не ново — эхо Log4Shell с его spray-and-pray, но с фронтенд-ароматом. Тогда повсеместность Java убила всех. Теперь? Хайп вокруг SSR в React делает то же самое. Девелоперы гонятся за производительностью; атакующие — за ключами.

Моё мнение: это выявляет более глубокий сдвиг. Фронтенд-фреймворки просачиваются в бэкенд без бэкенд-защиты. Next.js обещал простоту — а принёс нам пиняту с учётками.

Почему девелоперы продолжают развёртывать уязвимые Next.js-приложения

Скорость на рынок. В этом причина. Next.js позволяет быстро слепить fullstack-приложения — SSR, API-маршруты, всё в одном. А патчинг? Отстаёт. CVE-2025-55182 вышла, а 766 систем пали за часы.

Корпоративный спин называет это «волшебством edge-рендеринга». Назовём вещи своими именами: вектор для серверного армагеддона. Клиентская чистота React? Испаряется при гидратации на Node. Один неверный конфиг — и ваши секреты env становятся главной целью №1.

Смелый прогноз: ждите вариаций React2Shell. Атакующие прицепят его к криптомайнерам, рансомваре. Мы видели дефейсы Magento, кражу VPN-учёток — это масштабируется сильнее. Пока фреймворк-мейкеры не внедрят изоляцию рантайма (типа границ WebAssembly), жди волн.

Исторический параллель? Heartbleed, 2014. Переполнение буфера в OpenSSL утекло ключи массово. React2Shell? Передоверие конфигу делает то же. Девелоперы проигнорировали предупреждения Heartbleed; история рифмуется.

React2Shell — новый Log4Shell для веб-девелоперов?

Вроде того. Log4Shell требовались Java-логи повсюду. React2Shell нужно… публичное Next.js-приложение. Их больше, чем кажется — развёртывания Vercel исчисляются миллионами.

Разница? Глубина автоматизации. UAT-10608 не останавливается на RCE. Это харвестеры учёток на стероидах, заточенные под облачный бардак: K8s, Docker, IAM-роли. Один взлом каскадирует — латеральные перемещения, удары по цепочкам поставок.

Talos предупреждает о кошмарах комплаенса. Украденные токены GitHub? Захваты репозиториев. Ключи AWS? Шокирующие счета, дампы данных. А те учётки ИИ-платформ? Массовые инъекции промптов.

Патчите. Аудитьте. Меняйте.

Но архитектура важнее. Сегментируйте секреты — хранилища, не env-переменные. Least privilege в IAM. Сканируйте развёртывания своими Shodan-подобными тулами.

Что делать, если вас задел React2Shell?

Предполагайте взлом. Проверяйте логи на подозрительные HTTP-пэйлоады. Охотьтесь на Nexus-подобные C&C (Talos поделился IOC — используйте). Меняйте всё: SSH, облако, БД, токены авторизации.

Глобальный фикс? Откажитесь от наивного SSR в пользу гибридного. Клиентский рендеринг для чувствительных путей. Сканеры рантайма в CI/CD.

Прогноз: гиганты фреймворков (Vercel, команда React) введут обязательный автопатчинг. Или суды заставят.


🧬 Связанные инсайты

Часто задаваемые вопросы

Что такое React2Shell?

React2Shell (CVE-2025-55182) — критическая уязвимость React в приложениях Next.js, позволяющая неаутентифицированный RCE через специально сформированные HTTP-запросы с последующей кражей учётных данных.

Как исправить уязвимость React2Shell?

Немедленно обновите Next.js и React до запатченных версий. Проведите аудит публичных приложений с помощью Shodan/Censys. Поменяйте все скомпрометированные учётные данные вроде SSH-ключей и облачных токенов.

Что украли в атаках React2Shell?

Приватные SSH-ключи, токены AWS/GCP, секреты GitHub, сервисные аккаунты Kubernetes, учётки БД, ключи ИИ/платёжных платформ, истории шелла — свыше 10 000 файлов с 766 систем.

James Kowalski
Written by

Investigative tech reporter focused on AI ethics, regulation, and societal impact.

Worth sharing?

Get the best AI stories of the week in your inbox — no noise, no spam.

Originally reported by SecurityWeek