Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Otkaz v obsluzhivanii i raskrytie ishodnogo koda v react server components
Dev48

© 2026 · All rights reserved.

Отказ в обслуживании и раскрытие исходного кода в React Server Components

Источник: React

Отказ в обслуживании и раскрытие исходного кода в React Server Components

Источник: React

Исследователи безопасности обнаружили и раскрыли две дополнительные уязвимости в React Server Components при попытке использовать патчи для критической уязвимости прошлой недели. Уязвимость высокого уровня «Отказ в обслуживании» (CVE-2025-55184) и уязвимость среднего уровня «Раскрытие исходного…

27 сентября 2026 г.•Обновлено: 27 сентября 2026 г.

11 декабря 2025 г., команда React

Обновлено 26 января 2026 г.

Исследователи безопасности обнаружили и раскрыли две дополнительные уязвимости в React Server Components при попытке использовать патчи, выпущенные для критической уязвимости на прошлой неделе.

Эти новые уязвимости не позволяют выполнить удаленное исполнение кода (Remote Code Execution). Патч для React2Shell по-прежнему эффективно предотвращает эксплойт удаленного исполнения кода.

Новые уязвимости раскрыты как:

  • Отказ в обслуживании (Denial of Service) — высокий уровень опасности: CVE-2025-55184, CVE-2025-67779 и CVE-2026-23864 (CVSS 7.5)
  • Раскрытие исходного кода (Source Code Exposure) — средний уровень опасности: CVE-2025-55183 (CVSS 5.3)

Мы рекомендуем немедленно обновиться из-за серьезности недавно раскрытых уязвимостей.

Примечание

Ранее опубликованные патчи уязвимы.

Если вы уже обновились для устранения предыдущих уязвимостей, вам потребуется обновиться снова.

Если вы обновились до версий 19.0.3, 19.1.4 и 19.2.3, эти исправления неполные, и вам потребуется обновиться снова.

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

Обновлено 26 января 2026 г.

Более подробная информация об этих уязвимостях будет предоставлена после завершения развертывания исправлений.

Требуются немедленные действия

Эти уязвимости присутствуют в тех же пакетах и версиях, что и CVE-2025-55182.

Это включает версии 19.0.0, 19.0.1, 19.0.2, 19.0.3, 19.1.0, 19.1.1, 19.1.2, 19.1.3, 19.2.0, 19.2.1, 19.2.2 и 19.2.3 для:

Исправления были перенесены (backported) в версии 19.0.4, 19.1.5 и 19.2.4. Если вы используете любой из вышеперечисленных пакетов, пожалуйста, немедленно обновитесь до любой из исправленных версий.

Как и прежде, если код React вашего приложения не использует сервер, ваше приложение не подвержено этим уязвимостям. Если ваше приложение не использует фреймворк, сборщик или плагин сборщика, поддерживающий React Server Components, ваше приложение не подвержено этим уязвимостям.

Примечание

Для критических CVE часто обнаруживаются последующие уязвимости.

Когда раскрывается критическая уязвимость, исследователи тщательно изучают соседние пути кода в поисках вариантов техник эксплуатации, чтобы проверить, можно ли обойти первоначальное исправление.

Эта закономерность наблюдается во всей отрасли, а не только в JavaScript. Например, после Log4Shell были зарегистрированы дополнительные CVE (1, 2), когда сообщество проверяло исходное исправление.

Дополнительные раскрытия могут вызывать разочарование, но, как правило, они являются признаком здорового цикла реагирования.

Затронутые фреймворки и сборщики

Некоторые фреймворки и сборщики React зависели от уязвимых пакетов React, имели их в качестве peer-зависимостей или включали их в себя. Следующие фреймворки и сборщики React затронуты: next, react-router, waku, @parcel/rsc, @vite/rsc-plugin и rwsdk.

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

Меры по смягчению последствий со стороны хостинг-провайдеров

Как и прежде, мы работали с рядом хостинг-провайдеров для применения временных мер по смягчению последствий.

Вам не следует полагаться на них для обеспечения безопасности вашего приложения, и все равно необходимо немедленно обновиться.

React Native

Для пользователей React Native, не использующих монорепозиторий или react-dom, ваша версия react должна быть зафиксирована в package.json, и никаких дополнительных действий не требуется.

Если вы используете React Native в монорепозитории, вам следует обновить только затронутые пакеты, если они установлены:

  • react-server-dom-webpack
  • react-server-dom-parcel
  • react-server-dom-turbopack

Это необходимо для устранения уязвимостей, но вам не нужно обновлять react и react-dom, поэтому это не вызовет ошибку несоответствия версий в React Native.

См. эту проблему для получения дополнительной информации.

Высокий уровень опасности: множественный отказ в обслуживании

CVE: Базовая оценка: 7.5 (высокая) Дата: 26 января 2026 г.

Исследователи безопасности обнаружили, что в React Server Components по-прежнему существуют дополнительные уязвимости DoS.

Уязвимости вызываются отправкой специально созданных HTTP-запросов к конечным точкам Server Function и могут привести к сбоям сервера, исключениям нехватки памяти (out-of-memory) или чрезмерному использованию ЦП; в зависимости от используемого уязвимого пути кода, конфигурации приложения и кода приложения.

Патчи, опубликованные 26 января, устраняют эти DoS-уязвимости.

Примечание

Опубликованы дополнительные исправления

Первоначальное исправление, устраняющее DoS в , было неполным.

Это оставило предыдущие версии уязвимыми. Версии 19.0.4, 19.1.5, 19.2.4 безопасны.

Обновлено 26 января 2026 г.

Высокий уровень опасности: отказ в обслуживании

CVE: и Базовая оценка: 7.5 (высокая)

Исследователи безопасности обнаружили, что вредоносный HTTP-запрос может быть создан и отправлен на любую конечную точку Server Functions, что при десериализации React может вызвать бесконечный цикл, который зависает процесс сервера и потребляет ЦП. Даже если ваше приложение не реализует какие-либо конечные точки React Server Function, оно все равно может быть уязвимо, если ваше приложение поддерживает React Server Components.

Это создает вектор уязвимости, с помощью которого злоумышленник может лишить пользователей доступа к продукту и потенциально оказать влияние на производительность серверной среды.

Патчи, опубликованные сегодня, устраняют эту проблему, предотвращая бесконечный цикл.

Средний уровень опасности: раскрытие исходного кода

CVE: Базовая оценка: 5.3 (средняя)

Исследователь безопасности обнаружил, что вредоносный HTTP-запрос, отправленный на уязвимую Server Function, может небезопасно вернуть исходный код любой Server Function. Для эксплуатации требуется наличие Server Function, которая явно или неявно раскрывает строковый аргумент:

'use server';

export async function serverFunction(name) {

const conn = db.createConnection('SECRET KEY');

const user = await conn.createUser(name); // неявно преобразовано в строку, утечка в БД

return {

id: user.id,

message: `Hello, ${name}!` // явно преобразовано в строку, утечка в ответе

Злоумышленник может получить возможность раскрыть следующее:

0:{"a":"$@1","f":"","b":"Wy43RxUKdxmr5iuBzJ1pN"}

1:{"id":"tva1sfodwq","message":"Hello, async function(a){console.log(\"serverFunction\");let b=i.createConnection(\"SECRET KEY\");return{id:(await b.createUser(a)).id,message:`Hello, ${a}!`}}!"}

Патчи, опубликованные сегодня, предотвращают преобразование исходного кода Server Function в строку.

Примечание

Могут быть раскрыты только секреты, содержащиеся в исходном коде.

Секреты, жестко закодированные в исходном коде, могут быть раскрыты, но секреты времени выполнения, такие как process.env.SECRET, не затрагиваются.

Область раскрытого кода ограничена кодом внутри Server Function, который может включать другие функции в зависимости от объема встраивания (inlining), предоставляемого вашим сборщиком.

Всегда проверяйте соответствие с производственными сборками.

Хронология

  • 3 декабря: Утечка сообщена Vercel и Meta Bug Bounty пользователем Andrew MacPherson.
  • 4 декабря: Первоначальный DoS сообщен в Meta Bug Bounty пользователем RyotaK.
  • 6 декабря: Обе проблемы подтверждены командой React, и команда начала расследование.
  • 7 декабря: Созданы первоначальные исправления, и команда React начала проверку и планирование нового патча.
  • 8 декабря: Уведомлены затронутые хостинг-провайдеры и проекты с открытым исходным кодом.
  • 10 декабря: Меры по смягчению последствий хостинг-провайдеров внедрены, патчи проверены.
  • 11 декабря: Дополнительный DoS сообщен в Meta Bug Bounty пользователем Shinsaku Nomura.
  • 11 декабря: Патчи опубликованы и публично раскрыты как и .
  • 11 декабря: Пропущенный случай DoS обнаружен внутри компании, исправлен и публично раскрыт как .
  • 26 января: обнаружены дополнительные случаи DoS-атак, исправлены и публично раскрыты как .

Атрибуция

Благодарим Эндрю Макферсона (AndrewMohawk) за сообщение об утечке исходного кода, из GMO Flatt Security Inc и Синсаку Номуру из Bitforest Co., Ltd. за сообщение об уязвимостях типа «отказ в обслуживании» (DoS). Благодарим Муфида VH из Winfunc Research, Иоахима Вийде, RyotaK из GMO Flatt Security Inc и Сянвэя Чжана из Tencent Security YUNDING LAB за сообщение о дополнительных уязвимостях типа «отказ в обслуживании».

← Все статьи