Обновление безопасности Next.js: 11 декабря 2025

Обновление безопасности Next.js: 11 декабря 2025

Критическое обновление для всех пользователей Next.js

В протоколе React Server Components (RSC) были обнаружены две новые уязвимости, требующие немедленного внимания. Эти проблемы были выявлены в ходе дополнительного исследования патчей для недавней уязвимости React2Shell. Важно подчеркнуть, что новые уязвимости НЕ позволяют выполнить удалённый код на сервере, а ранее выпущенный патч для React2Shell остаётся полностью эффективным.

Уязвимости берут начало в кодовой базе React и зарегистрированы под идентификаторами CVE-2025-55183 и CVE-2025-55184. Данное уведомление информирует о влиянии этих проблем на приложения Next.js, использующие современный App Router.

Важное дополнение: Первоначальное исправление для одной из уязвимостей (CVE-2025-55184) оказалось неполным. Полноценное исправление выпущено под новым идентификатором CVE-2025-67779. Если вы уже обновили Next.js в ответ на первое предупреждение, вам необходимо выполнить обновление ещё раз до версий, указанных в этом сообщении.

Описание и риски уязвимостей

1. Отказ в обслуживании (CVE-2025-55184) — высокий уровень опасности

Злоумышленник может отправить специально сформированный HTTP-запрос на любую конечную точку вашего приложения, использующую App Router. При обработке такого запроса сервер может войти в бесконечный цикл, что приведёт к полному зависанию процесса и невозможности обслуживать легитимные запросы пользователей (атака типа Denial-of-Service).

Повторное предупреждение: Первоначальный патч был неполным. Требуется обновление до версий, содержащих фикс CVE-2025-67779.

2. Раскрытие исходного кода (CVE-2025-55183) — средний уровень опасности

С помощью специального запроса можно заставить Server Function вернуть скомпилированный исходный код других Server Functions из вашего приложения. Это создаёт несколько рисков:

  • Раскрытие коммерческой и бизнес-логики приложения.
  • Возможная утечка секретов (API-ключи, пароли), если они были прописаны напрямую в коде, а не загружаются из переменных окружения. Некоторые сборщики (bundlers) могут встроить такие значения прямо в скомпилированный код функции.

Какие версии Next.js затронуты и как обновляться

Уязвимости затрагивают приложения, использующие React Server Components через App Router. Приложения, использующие старый Pages Router, не подвержены атаке, но обновление всё равно настоятельно рекомендуется.

Вам необходимо обновиться до последней безопасной версии в вашей ветви релизов:

  • Если вы используете Next.js версий 13.3, 14.0.x или 14.1.x, обновитесь до версии 14.2.35.
  • Для ветви 15.x обновитесь в соответствии с вашим минорным релизом:
    • 15.0.x → 15.0.7
    • 15.1.x → 15.1.11
    • 15.2.x → 15.2.8
    • 15.3.x → 15.3.8
    • 15.4.x → 15.4.10
    • 15.5.x → 15.5.9
  • Для Next.js 16.0.x обновитесь до версии 16.0.10.
  • Пользователям canary-сборок следует перейти на 15.6.0-canary.60 (для ветви 15.x) или 16.1.0-canary.19 (для ветви 16.x).

Команды для обновления

Выполните в терминале соответствующую команду для вашей версии:

npm install next@14.2.35
npm install next@15.0.7
npm install next@15.1.11
npm install next@15.2.8
npm install next@15.3.8
npm install next@15.4.10
npm install next@15.5.9
npm install next@16.0.10

Автоматическая проверка и обновление

Для упрощения процесса вы можете использовать официальный инструмент. Запустите команду:

npx fix-react2shell-next

Она запустит интерактивную утилиту, которая проверит ваши текущие зависимости и предложит корректное обновление.

Важно: Обходных решений (workaround) для этих уязвимостей не существует. Единственный способ защитить приложение — немедленное обновление до исправленной версии.

6

25.12.2025

|

nextjs.org
2025