CVE-2025-55182 та CVE-2025-66478: Критична RCE в компонентах React Server та Next.js

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

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

Відкриття CVE-2025-55182 в React та його супутник CVE-2025-66478 у Next.js став чітким попереджувальним сигналом для сучасного світу веб-розробки. Ці проблеми наражають сервери, що використовують компоненти React Server (RSC) та фреймворки, що реалізують протокол RSC “Flight”, на неавторизоване віддалене виконання коду, навіть під час роботи з повністю стандартною, готовою конфігурацією.

Особливо тривожною цю ситуацію робить те, як мало зусиль, які потрібні зловмиснику щоб використати цю вразливість як зброю: спеціально створений HTTP-запит, спрямований на вразливу кінцеву точку, може бути достатнім для запуску довільного коду на сервері. З огляду на те, що велика частка хмарних середовищ залежить від React та Next.js, терміновість виправлення для адміністраторів та розробників важко переоцінити.

Розуміння CVE-2025-55182 і CVE-2025-66478

ataque Shai-Hulud a la cadena de suministro de npm
Пов'язана стаття:
Шай-Хулуд: el ataque que sacude la cadena de suministro de npm

CVE-2025-55182 стосується основної помилки , react-server пакет, компонент, що лежить в основі компонентів React Server та їхнього протоколу «Flight». Цей пакет відповідає за обробку спеціалізованих корисних навантажень, що використовуються під час потокової передачі компонентів, що відображаються сервером, клієнту, механізму, що є центральним для нової екосистеми React 19.

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

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

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

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

Проблема безпеки компонентів сервера React

Як протокол Flight стає шляхом до RCE

Першопричина CVE-2025-55182 у компонентах React Server є логічним недоліком десеріалізації в обробці протоколу RSC "Flight". RSC використовує спеціалізований формат зв'язку для опису дерев компонентів, властивостей та дій сервера, які сервер кодує, а клієнт декодує як частину рендерингу.

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

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

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

Отже, атака є віддалений та неавтентифікований: не потрібні дійсний сеанс, витік токена та попередня активація. Публічний Next.js або інший додаток на базі RSC, який не був оновлений, можна перевірити та, якщо він вразливий, скомпрометувати.

Хто і що впливає

Оскільки вразливість корениться в реалізація основного react-сервера, його вплив поширюється не лише на сам React та Next.js, а й на будь-який фреймворк, який об'єднує або інтегрує RSC подібним чином. Це значно розширило сферу потенційного впливу, ніж одна бібліотека чи продукт, що підтримується постачальником.

Публічні аналізи підкреслили Next.js як найпомітніша цільова платформа для нижнього рівня, враховуючи його популярність та глибоку інтеграцію з RSC. Дані, зібрані Wiz Research, свідчать про те, що значна частина хмарних середовищ використовує версії React або Next.js, які потрапляють до вразливого діапазону, що ставить під загрозу значну частину серверної інфраструктури рендерингу веб-сторінок.

Згідно з цими оцінками, приблизно 39%-40% хмарних середовищ містять принаймні один екземпляр React або Next.js, на який впливають ці CVE. Сам Next.js з'являється в більшості цих середовищ, і в багатьох випадках він забезпечує роботу загальнодоступних програм, що працюють безпосередньо з Інтернетом.

Окрім Next.js, будь-який фреймворк або інструмент, що вбудовує пакет react-server або іншим чином підтримує RSC, що потенційно може бути розкрито. Приклади позначених ознак:

  • Next.js, у версіях з підтримкою RSC.
  • Плагіни Vite RSC що забезпечують підтримку серверних компонентів.
  • Плагіни RSC для посилок з інтегрованими компонентами React Server.
  • Попередній перегляд RSC для React Router або експериментальні релізи.
  • RedwoodSDK реалізації з використанням функцій RSC.
  • Ваку та аналогічні нові фреймворки, що базуються на RSC.

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

Вразливість віддаленого виконання коду Next.js

Чому ризик вважається надзвичайним

Кілька характеристик поєднуються, щоб зробити CVE-2025-55182 і CVE-2025-66478 особливо це стосується захисників. По-перше, поверхня атаки вплетена в те, як RSC взаємодіє через мережу, тому в багатьох конфігураціях до нього можна дістатися через звичайний HTTP-трафік. Серверам не потрібно вмикати екзотичні функції для доступу; достатньо стандартного розгортання.

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

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

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

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

Відповідь постачальників та служб безпеки

Після виявлення вразливості процес розкриття інформації просунувся швидко. Дослідник безпеки Лахлан Девідсон повідомив про недолік команді React через програму винагороди за виявлені помилки Meta наприкінці листопада. Це раннє повідомлення дозволило розробникам вивчити проблему, підготувати захищені релізи та узгодити інструкції з фреймворками, такими як Next.js.

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

Версель та Команда Next.js випустила власні рекомендації, де детально описано, які версії зазнали змін та як користувачі повинні оновлюватися. Метою було максимально спростити для команд процес визначення уражених розгортань та переходу до виправлених випусків, зокрема для програм, створених за допомогою поширених інструментів, таких як create-next-app.

З боку оборони, Wiz Research та інші постачальники рішень безпеки опублікували аналізи, сканування та запити, щоб допомогти організаціям виявляти вразливі екземпляри у своїх хмарних середовищах. Наприклад, Wiz додав попередньо створені запити та рекомендації центру загроз, щоб виявити інсталяції React та Next.js, які досі покладаються на недосконалу реалізацію RSC.

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

Негайні кроки для розробників та операторів

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

Практичний план відповіді для організацій може виглядати так:

  • Інвентаризація всіх React та Next.js застосунків, включаючи внутрішні інструменти та менш помітні сервіси, а не лише флагманські загальнодоступні сайти.
  • Визначте, які розгортання використовують RSC або покладаються на версії React та Next.js позначені як вразливі у звітах постачальників.
  • Оновіть React, react-server та Next.js до захищених версій, випущених розробниками, відповідно до їхніх інструкцій щодо конкретної версії.
  • Перегляньте інші фреймворки з підтримкою RSC такі як плагіни Redwood, Waku або RSC для Vite та Parcel, та встановлювати оновлення, щойно розробники їх випускають.
  • Журнал перегляду та телеметрія навколо кінцевих точок RSC на наявність незвичайних, неправильно сформованих або підозрілих запитів, які можуть свідчити про спроби зондування або експлуатації.

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

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

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

Довгострокові наслідки для веб-екосистеми

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

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

Масштаб потенційного впливу також підкреслив, як Екосистеми з відкритим кодом залежать від швидких та скоординованих реакцій коли з'являються критичні недоліки. React, Next.js, постачальники хмарних послуг та постачальники засобів безпеки повинні були швидко узгодити свої дії для публікації патчів, документації та інструментів виявлення. Така координація може значно скоротити час між розкриттям та виправленням недоліків, зменшуючи загальну шкоду.

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

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

Оскільки спільнота продовжує усвідомлювати ці вразливості, організації, які вживають швидка дія виправляти, контролювати та переглядати використання RSC, матимуть сильніші можливості. Виправлення помилок CVE-2025-55182 та CVE-2025-66478 — це не просто виправлення однієї помилки; це нагадування про те, наскільки взаємопов’язані сучасні веб-стеки та наскільки важливо пильно стежити за основами, на яких вони базуються.

Схожі повідомлення: