CVE-2025-55182 у React та CVE-2025-66478 у Next.js: що критична помилка RCE насправді означає для вебу

Останнє оновлення: 12/04/2025
Автор: C SourceTrail
  • CVE-2025-55182 в React та CVE-2025-66478 в Next.js дозволяють неавтентифіковане віддалене виконання коду через протокол React Server Components Flight.
  • Цей недолік виникає через небезпечну десеріалізацію корисних навантажень RSC, що залишає доступними конфігурації React та Next.js за замовчуванням без будь-яких змін у користувацькому коді.
  • Дослідники безпеки повідомляють про майже 100% надійність експлуатації та попереджають про ймовірність масових атак, оскільки аналізуються виправлення.
  • Негайне оновлення до захищених версій React та Next.js є єдиним остаточним засобом зменшення ризику, особливо в хмарних середовищах, де до ~40% може бути вразливими.

Вразливість безпеки в React та Next.js

Розкриття інформації CVE-2025-55182 в React та його подвійна проблема CVE-2025-66478 у Next.js звернув увагу на те, наскільки крихкими можуть бути серверні стеки JavaScript, коли низькорівневі протоколи виходять з ладу. Замість того, щоб бути нішевою помилкою, це максимальна серйозність вади віддаленого виконання коду, яка вражає суть компонентів React Server та Протокол польоту багато сучасних програм непомітно залежать від.

Що робить цю справу особливо тривожною, так це те, що налаштування за замовчуванням доступніПростий додаток Next.js, згенерований за допомогою create-next-app, створений для продакшену та розгорнутий без будь-яких незвичайних опцій, може бути скомпрометований через неавтентифікований HTTP-запит. Ніяких химерних неправильних налаштувань, жодних екзотичних плагінів — лише стандартний стек, який багато команд розгортають щодня.

Як було виявлено CVE-2025-55182 та CVE-2025-66478

Корінь проблеми криється в Реалізація react-server, яка забезпечує роботу компонентів React Server (RSC)Цей пакет лежить в основі протоколу Flight, який використовується для передачі серіалізованих даних компонентів між клієнтом і сервером. Коли дослідник безпеки Лахлан Девідсон повідомили про підозрілу поведінку через програму винагороди за помилки Meta наприкінці листопада, це викликало швидку реакцію команд React та Meta.

Згідно з публічними повідомленнями, про вразливість було виявлено в середу та екстрені латки були відправлені приблизно протягом чотирьох днівЦе надзвичайно швидке вирішення проблеми, яка впливає на таку велику екосистему, і це підкреслює серйозність недоліку: розробники React оцінили його на Оцінка CVSS 10.0, максимально можливий.

Паралельно, Vercel — компанія, що стоїть за Next.js — проаналізував, як та сама базова помилка вплинула на його фреймворк. Оскільки Next.js використовує той самий протокол RSC Flight на сервері, він успадкував цю слабкість і отримав власний ідентифікатор, CVE-2025-66478Vercel випустила попередження та патчі того ж дня, що й попередження React, прагнучи максимально скоротити вікно можливостей для зловмисників.

Незважаючи на швидку реакцію, Постачальники та дослідники безпеки почали попереджати, що зловмисники, ймовірно, здійснять зворотне проектування виправлень. дуже швидко, як видно з атаки на ланцюг поставок проти npmЩойно виправлений код стане публічним, стане набагато легше визначити, де була помилка, та створити робочі експлойти.

Що саме відбувається не так у протоколі React Flight?

На технічному рівні, як CVE-2025-55182, так і CVE-2025-66478 зводяться до небезпечна десеріалізація даних, контрольованих зловмисником в рамках протоколу Flight. Компоненти React Server надсилають та отримують структуровані корисні навантаження, які сервер потім декодує та використовує для керування потоком виконання.

Вразлива логіка в react-server пакет не вдалося суворо перевірити структуру та вміст вхідних корисних навантажень RSCНадсилаючи навмисно спотворене, але ретельно створене корисне навантаження Flight до кінцевої точки функції React Server, зловмисник може вплинути на дії сервера під час десеріалізації цих даних. Замість простого відновлення доброякісного стану компонента, шлях коду можна спрямувати на виконання. привілейований JavaScript на сервері.

Оскільки помилка впливає на те, як декодується протокол, автентифікація не потрібнаВіддаленому зловмиснику потрібно лише мати можливість надсилати HTTP-запити до будь-якої досяжної кінцевої точки RSC або серверної функції. Це перетворює вразливість на простий, неавтентифікований вектор RCE: надішліть спеціально створений запит, зачекайте на небезпечну десеріалізацію, і корисне навантаження може зрештою виконатися на серверній частині.

Дослідники з Wiz, які незалежно проаналізували це питання, описують його як вразливість логічної десеріалізації а не просто помилка парсингу. Під час їхнього тестування було досягнуто повноцінного робочого експлойту для підтвердження концепції майже 100% надійність у запуску виконання коду на вразливих цілях.

Чому розгортання React та Next.js за замовчуванням під загрозою

Один із найбільш тривожних аспектів цих протиепізодичних екстремістських злочинів полягає в тому, що вони впливають на готові конфігураціїДля багатьох проблем безпеки експлуатація вимагає певного прапорця функції, рідко використовуваного плагіна або нестандартного режиму розгортання. У цьому випадку це не так.

Компоненти React Server та їхній протокол Flight стали невід'ємною частиною сучасних архітектур React 19 та Next.js. Як результат, стандартна виробнича збірка, згенерована create-next-app можна використовувати для злому без додаткового коду від розробника застосунку. Зловмиснику не потрібно вгадувати власні маршрути чи бізнес-логіку; достатньо зловживання загальними кінцевими точками RSC.

Недолік не обмежується лише самим Next.js. Будь-який фреймворк чи інструмент, який об'єднує або повторно реалізує протокол RSC Flight на сервері можуть бути вразливими. У громадських рекомендаціях та звітах про безпеку висвітлено кілька уражених екосистем:

  • Next.js, найвідоміша структура, що вплинула на нижчу ланку виробництва
  • Плагін Vite RSC (@vitejs/plugin-rsc)
  • Плагін RSC для посилок (@parcel/rsc)
  • Попередній перегляд React Router RSC
  • RedwoodSDK (часто згадується як rwsdk)
  • Ваку та інші набори інструментів із підтримкою RSC

У самому React помилка впливає версії 19.0, 19.1.0, 19.1.1 та 19.2.0 відповідних пакетів. Розробники стверджують, що оновлення до версії 19.0.1, 19.1.2 або 19.2.1 забезпечує посилену поведінку та усуває вразливість. Next.js має відповідні виправлені версії, які інтегрують виправлену логіку сервера React.

Деякі постачальники інфраструктури уточнили межі впливу. Наприклад, Google заявив, що Публічні образи ОС для Compute Engine не є вразливими за замовчуванням, оскільки вони не постачають готові версії React або Next.js; ризик виникає, коли користувачі розгортають уражені версії цих фреймворків поверх базових образів.

Який радіус вибуху по всій хмарі?

Масштаб проблеми стає очевидним, якщо подивитися на те, наскільки широко React та Next.js використовуються у продакшені. React лежить в основі інтерфейсів користувача для основних платформ, таких як Facebook, Instagram, Netflix, Airbnb, Shopify, Walmart, Asana та багато іншихКрім того, безліч менших програм та внутрішніх панелей інструментів побудовані з використанням тих самих компонентів та фреймворків.

Команди розвідки загроз у Wiz проаналізували телеметрію з хмарних середовищ і виявили, що близько 39-40% хмарних розгортань містять вразливі екземпляри React або Next.js. Тільки для Next.js фреймворк виглядає приблизно так 69% опитаних середовищ, і приблизно через 61% цих загальнодоступних програм працюють поверх нього.Якщо об’єднати ці відсотки, це означає, що приблизно 44% усіх спостережуваних хмарних середовищ розміщують публічно доступні екземпляри Next.js, незалежно від точної версії фреймворку.

Саме цей збіг між популярністю та вразливістю насторожує захисників. Коли широко розгорнутий стек має максимально серйозну, неавтентифіковану помилку RCE з надійним шляхом експлойту, майже гарантовано, що підуть опортуністичні та цілеспрямовані атакиНавіть організації, які швидко встановлюють виправлення, можуть зіткнутися з коротким періодом, коли відкриті кінцеві точки можуть бути перевірені та скомпрометовані.

На момент перших розкриттів, публічно не повідомлялося про підтверджену експлуатацію в дикій природіОднак, численні дослідники з безпеки, включаючи експертів з Rapid7 та watchTowr, наголосили, що цілком реально припустити, що зловмисники вже проводять зворотне проектування патчів, сканують їх на наявність непатчених сервісів та створюють автоматизовані ланцюжки атак.

Що кажуть дослідники та постачальники про ризик експлуатації

Заяви спільноти безпеки малюють послідовну картину: це не теоретична проблема, а поріг входу для зловмисників низький. Бенджамін Гарріс, генеральний директор watchTowr, описав уразливість як серйозний ризик для користувачів одного з найпоширеніших веб-фреймворків у світі і наголосив, що експлуатація вимагає «дещо передумов».

Дослідники Wiz повторили цю оцінку після тестування як вразливих, так і виправлених версій. Їхні внутрішні експерименти показали, що створені корисні навантаження, що використовуються для використання небезпечної десеріалізації, досягли майже 100% успіху при запуску повного віддаленого виконання коду на уражених серверах. Вони також зазначили, що атака повністю віддалений та неавтентифікований, що повністю керується спеціально сформованими HTTP-запитами.

З точки зору Rapid7, очікується, що Технічні описи та експлойти для підтвердження концепції з'являться, як тільки достатня кількість людей розбере патчі.Це, у свою чергу, ймовірно, стимулюватиме ширше сканування та спроби масового використання, особливо проти хмарних середовищ з багатьма інтернет-додатками.

Навіть поза межами спільноти постачальників, Галузеві ЗМІ сформулювали ці CVE як такі, що ставлять під загрозу значну частину інтернету.Звіти висвітлюють не лише серйозність проблеми, але й кількість великих споживчих сайтів, SaaS-платформ та API-бекендів, які покладаються на React та Next.js для своїх фронтендів та рендерингу на стороні сервера.

Кроки для пом'якшення наслідків: що користувачі React та Next.js повинні зробити зараз

Для команд, які використовують React або Next.js у продакшені, рекомендації розробників та дослідників зводяться до простого пункту: оновлення до виправлених версій – єдине остаточне виправленняНемає перемикачів конфігурації або загальних правил WAF, які можуть повністю вирішити проблему небезпечної десеріалізації в протоколі Flight.

Команда React рекомендує всім, хто користується ураженими гілками переходить на захищені релізи 19.0.1, 19.1.2 або 19.2.1, переконавшись, що react-server пакет включено до оновлення. Для Next.js Vercel опублікував виправлені збірки, що інтегрують виправлену обробку RSCАдміністраторам слід звернутися до офіційної рекомендації Next.js, щоб визначити мінімальну безпечну версію для обраної ними лінійки випусків.

Організації, що залежать від інших Фреймворки з підтримкою RSC — таких як Redwood, Waku, попередній перегляд RSC від React Router або плагіни Vite та Parcel RSC — рекомендується перевірте відповідні примітки до випуску та канали безпекиУ багатьох випадках ці проекти просто обгортають або об'єднують серверні компоненти React, тому потрібне оновлення самого React, а потім отримання останньої версії фреймворку.

Окрім простого встановлення патчів, використовуються хмарні інструменти для пошук вразливих екземплярів у великих масштабахНаприклад, клієнти Wiz можуть переглядати запити та рекомендації в Центрі загроз Wiz, щоб знайти, де в їхніх середовищах розгорнуті уражені версії React або Next.js. Інші організації використовують інвентаризацію активів, дані SBOM та сканування контейнерів для досягнення подібної видимості.

Якщо є будь-які ознаки того, що системи вже могли бути атаковані або скомпрометовані за допомогою цих CVE, рекомендується підтримка реагування на інцидентиДеякі постачальники спеціально запрошують клієнтів, які підозрюють використання CVE-2025-55182 або CVE-2025-66478, звернутися до їхніх команд з питань зв'язку з клієнтами для отримання допомоги з сортуванням, стримуванням та криміналістикою.

Що це говорить про веб-екосистему JavaScript

Навіть попри те, що патчі React та Next.js закривають безпосередню прогалину, Цей інцидент порушує ширші питання щодо того, як серверні JavaScript-фреймворки обробляють ненадійні дані.Такі протоколи, як Flight, розташовані глибоко в стеку, заховані за абстракціями, які розробники рідко перевіряють безпосередньо, а це означає, що недоліки можуть мати широкий спектр наслідків, перш ніж їх помітять.

Справа в тому, що вразлива поведінка, що постачається за замовчуванням, сильно рекламовані конфігурації також підкреслює суперечність між досвідом розробника та безпечним дизайном за замовчуванням. Функції, що спрощують створення сучасних додатків, такі як серверні компоненти та безперебійна серіалізація між клієнтом і сервером, можуть непомітно створювати складні поверхні для атак.

Для команд безпеки цей випадок є ще одним нагадуванням про те, що Вразливості на рівні фреймворку можуть миттєво перетворитися на вразливість для всієї організаціїОдна помилка в популярному компоненті з відкритим кодом може з'явитися в основі десятків окремих програм, мікросервісів та внутрішніх інструментів, особливо коли контейнери та шаблони використовуються повторно.

З позитивного боку, відповідь розробників React, Meta та Vercel, демонструє, що скоординоване розкриття та швидкий розвиток ділянок можливі навіть у великих екосистемахЧіткі рекомендації, виправлення з підтвердженими версіями та координація з постачальниками засобів безпеки допомогли захисникам визначити пріоритетність цієї проблеми серед багатьох конкуруючих вразливостей.

Забігаючи вперед, багато спостерігачів очікують подальшого пильного вивчення Логіка серіалізації, десеріалізації та парсингу протоколів у вебфреймворкахЯкщо CVE-2025-55182 та CVE-2025-66478 стимулюватимуть більш систематичне тестування та ретельнішу перевірку таких компонентів, як Flight, деякі довгострокові переваги безпеки можуть виникнути внаслідок серйозного інциденту.

Наразі команди, що використовують стеки React або Next.js, змагаються між... розгортання патчів та автоматизація дій зловмисниківЗ огляду на максимально серйозне обмеження ризику (RCE), що впливає на конфігурації за замовчуванням, значну присутність у хмарі та високонадійні методи експлуатації, вже продемонстровані в дослідженнях, забезпечення безпеки цих середовищ зводиться до того, наскільки швидко організації можуть визначити, де вони вразливі, та перенести все на захищені релізи.

аудиторія безпеки npm
Пов'язана стаття:
Детальний посібник з аудиту безпеки npm та атак на ланцюги поставок
Схожі повідомлення: