Один некорректный 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) введут обязательный автопатчинг. Или суды заставят.
🧬 Связанные инсайты
- Читать дальше: Apple’s DarkSword Panic Patch: Why Your Old iPhone Just Got a Lifeline
- Читать дальше: Stryker Recovers from Iranian Data Wipeout in Record Time
Часто задаваемые вопросы
Что такое 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 систем.