У екосистемі React виявлено критичну уразливість CVE-2025-55182, неофіційно названу React2Shell. Вона отримала максимальну оцінку 10,0 за шкалою CVSS і дозволяє зловмиснику виконувати довільний код на сервері без будь-якої автентифікації. З огляду на те, що React та пов’язані з ним фреймворки лежать в основі мільйонів веб‑застосунків, ризик має системний характер для сучасного вебу.
Що таке React2Shell та чому уразливість настільки небезпечна
React — одна з найпоширеніших JavaScript‑бібліотек для розробки інтерфейсів. Базовий npm‑пакет React завантажується близько 55,8 млн разів на тиждень, а популярний фреймворк Next.js, побудований на React, має приблизно 16,7 млн завантажень щотижня. Тому будь‑який критичний дефект у серверних можливостях React автоматично впливає на дуже широкий пул застосунків.
React2Shell пов’язана з обробкою даних у контексті React Server Components (RSC), зокрема з роботою React Server Function endpoints. Для атаки достатньо надіслати спеціально сформований HTTP‑запит на доступний зовні серверний ендпоінт. На етапі десеріалізації некоректно перевірений RSC‑потік призводить до виконання довільного JavaScript‑коду на сервері.
Ключовий аспект уразливості React2Shell — повна відсутність потреби в облікових даних чи підвищених привілеях. Необхідна лише можливість мережевого доступу до вразливого застосунку. Це робить React2Shell привабливою ціллю для масових автоматизованих сканувань та експлойтів.
Технічна природа CVE-2025-55182: логічно небезпечна десеріалізація
За оцінками дослідників Endor Labs, React2Shell є прикладом логічно небезпечної десеріалізації. Серверна частина React не забезпечує належну валідацію структури вхідних RSC‑даних. У разі маніпуляції форматом пейлоаду з боку зловмисника механізм перевірки фактично «обходиться», а отримані дані інтерпретуються як довірений серверний JavaScript‑код.
Важливо, що уразливість проявляється на стандартних налаштуваннях фреймворків. Йдеться не про екзотичні конфігурації, а про типові розгортання «з коробки», які широко використовують команди розробки без додаткового тюнінгу безпеки.
Які версії React та пакети вразливі до React2Shell
Уразливі npm‑пакети React Server
За інформацією розробників, CVE-2025-55182 впливає на такі пакети:
Уразливі пакети та версії:
react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack у версіях 19.0, 19.1.0, 19.1.1 та 19.2.0.
Виправлені версії:
патчі випущені у версіях 19.0.1, 19.1.2 та 19.2.1. Оновлення до цих релізів є мінімально необхідною дією для всіх, хто використовує React Server Components.
Вплив на Next.js та інші фреймворки на базі React
Окремо під удар потрапив Next.js — один із найпопулярніших фреймворків для SSR та full‑stack‑розробки на React. Компанія Vercel намагалася зареєструвати пов’язану уразливість під ідентифікатором CVE-2025-66478, однак NIST класифікував її як дублікат CVE-2025-55182.
Уразливі гілки Next.js:
— canary‑релізи, починаючи з 14.3.0-canary.77;
— усі релізи лінійок 15.x та 16.x до виходу пропатчених версій.
Патчі Next.js доступні для версій: 16.0.7, 15.5.7, 15.4.8, 15.3.6, 15.2.6, 15.1.9 та 15.0.5.
Дослідники також вказують на потенційні ризики для інших реалізацій React Server, включно з Vite RSC plugin, Parcel RSC plugin, React Router RSC preview, RedwoodSDK, Waku та подібними рішеннями. Окрема важлива деталь: застосунок може бути вразливим навіть тоді, коли явно не використовує React Server Function endpoints, але має ввімкнену підтримку RSC.
Масштаб React2Shell: хмарні середовища, PoC‑експлойти та фальшиві демо
За оцінками компанії Wiz, близько 39% усіх хмарних середовищ містять інстанси, вразливі до CVE-2025-55182 або дубліката CVE-2025-66478. Виявлено понад 968 000 серверів, які працюють на React, Next.js та суміжних технологічних стосах.
Менш ніж за добу після публічного розкриття з’явився перший proof-of-concept (PoC) експлойт, а сама уразливість була оперативно інтегрована до арсеналу популярних сканерів безпеки. Водночас дослідник Лаклан Девідсон, який повідомив розробників про проблему ще 29 листопада, відзначив хвилю фальшивих PoC, що демонструють нереалістичні сценарії із використанням функцій vm#runInThisContext, child_process#exec, fs#writeFile. Такі приклади не відображають реальний вектор атаки та, зокрема, не працюють проти Next.js через відсутність відповідних можливостей у типовому середовищі виконання.
Реакція індустрії та практичні рекомендації з захисту
Великі хмарні провайдери вже розгорнули базові компенсуючі заходи. Cloudflare оголосила про впровадження нових сигнатур у своєму WAF для автоматичного захисту клієнтів при проксуванні React‑трафіку. Подібні кроки здійснили AWS, Akamai, Fastly та Google Cloud. Компанія F5 повідомила, що аналізує потенційний вплив уразливості на власні продукти.
До встановлення офіційних патчів експертна спільнота радить:
— впровадити WAF‑правила для фільтрації підозрілих RSC‑запитів;
— моніторити HTTP‑трафік до Server Function endpoints та інших RSC‑шляхів на предмет аномалій;
— за можливості тимчасово обмежити мережевий доступ до вразливих сервісів;
— провести аудит технологічного стека (включно з EASM‑інструментами) для виявлення застосунків, що використовують React Server Components і вразливі версії бібліотек.
Аналітики наголошують, що CVE-2025-55182 стосується насамперед лінійки React 19 та застосунків, які вже перейшли на відносно нову функціональність React Server. Це дещо звужує коло потенційних жертв порівняно з початковим сприйняттям «тотальної» уразливості, однак ризик для активних продакшн‑проєктів залишається високим. За оцінками BI.ZONE, у зоні ризику перебувають 10 000–25 000 веб‑ресурсів лише в одному національному сегменті, включно з сайтами малого бізнесу та сервісами підрядників.
Ситуація з React2Shell ще раз демонструє, наскільки вразливими є сучасні веб‑застосунки, що покладаються на складні серверні рантайми та автоматичну десеріалізацію даних. Організаціям, які використовують React, Next.js чи інші RSC‑сумісні рішення, варто якнайшвидше оновити уразливі пакети, посилити моніторинг RSC‑трафіку, актуалізувати WAF‑правила та переглянути практики безпечної розробки. Чим раніше будуть впроваджені патчі та додаткові заходи захисту, тим менша ймовірність, що наступна хвиля масових атак на CVE-2025-55182 / React2Shell пройде саме через ваші застосунки.