КИБЕРБЕЗОПАСНОСТЬ

Next.js закрыла две критические RCE-уязвимости вне графика релизов

Next.js 14 октября выпустила патчи 16.4.1 и 15.5.28 для двух критических RCE-уязвимостей и DoS-проблемы в Server Actions.

✍️ Редакция iTech News | 16.10.2026 | ⏱ 4 мин | Источник: The Hacker News
🦠

Обновление Next.js от 14 октября закрывает две критические уязвимости удалённого выполнения кода с оценкой CVSS 9,5 и одну серьёзную DoS-проблему. Для команд, которые используют App Router, Server Actions, оптимизацию пользовательских SVG или новые Cache Components, это не «очередная зависимость в lock-файле», а повод проверить версии и немедленно выкатить новый билд.

Патчи вошли в Next.js 16.4.1 и 15.5.28 — актуальные ветки Active и Maintenance LTS. Как сообщает The Hacker News, две RCE-уязвимости затрагивают совершенно разные участки стека: передачу данных в React Server Components и обработку SVG через библиотеку librsvg, которую Next.js использует через пакет sharp. Третья ошибка позволяет забить один процесс сервера вычислениями специально сформированным запросом к Server Actions.

Первая критическая проблема получила идентификатор GHSA-673q-mjm6-r5xr. Она относится к React Server Components и проявляется только в Next.js 16.0.0–16.4.0, если приложение использует Cache Components и функцию use cache, возвращающую более одного типизированного массива. React описывает сценарий как редкий: в ответе должны одновременно оказаться несколько typed arrays и значение под контролем атакующего. Но Vercel рекомендует обновить фреймворк всем пользователям ветки 16, даже если команда уверена, что такого кода у неё нет. В больших продуктах «уверена» нередко означает «этот модуль писал человек, который уже работает в другой компании».

Вторая RCE-уязвимость — CVE-2026-96889 и GHSA-2464-fhr4-w9xw — находится в librsvg. Уязвима обработка SVG, переданных атакующим, на Linux-серверах с glibc. Для Next.js это особенно важно в двух случаях: когда включена опция dangerouslyAllowSVG для Image Optimizer и когда генерация изображений через next/og работает в среде Node.js. По умолчанию фреймворк SVG не оптимизирует, поэтому не каждая инсталляция доступна для атаки. Однако имя настройки здесь вполне честное: включать её без понимания входящих данных и версии sharp явно не стоит.

Для Next.js 16 достаточно перейти на 16.4.1: эта версия требует sharp 0.35.5, где уже есть исправленная librsvg 2.63.2. На ветке 15 ситуация менее автоматическая. Next.js 15.5.28 допускает старый sharp 0.34.x, поэтому после обычного обновления зависимостей у проекта может сохраниться уязвимая библиотека. Командам на 15-й ветке стоит выполнить npm ls sharp и при необходимости поднять sharp до 0.35.5 или новее, затем пересобрать и развернуть приложение. Временная мера для SVG существует: sharp позволяет запретить операцию VipsForeignLoadSvg. Для ошибок в use cache и Server Actions обходного пути нет — требуется именно обновление Next.js.

DoS-ошибка GHSA-p3m5-59mp-jv5r затрагивает App Router-приложения с хотя бы одним Server Action в версиях 13.0.0–15.5.27 и 16.0.0–16.4.0. Подготовленный запрос способен загрузить один серверный процесс на 100% CPU, после чего он перестаёт нормально обслуживать другие запросы. Pages Router и проекты без Server Actions под проблему не подпадают. Это важное разделение: не всякий сайт на Next.js требует одинаково срочного реагирования, но в инфраструктуре с общими Node.js-процессами один перегруженный воркер может стать заметной проблемой и для соседних сервисов.

Сканеры зависимостей здесь могут не помочь. На 15 октября advisories для use cache и Server Actions не имели CVE и не отображались в базе, которую использует npm audit. Уязвимость в SVG при этом может обнаруживаться через advisory самого sharp. Полагаться на зелёный отчёт CI как на разрешение отложить патч рискованно: для двух из трёх проблем он просто не знает, что нужно ругаться.

Это уже третий за несколько месяцев случай, когда путь обработки изображений в экосистеме Next.js приводит к риску выполнения кода. В августе через sharp и libheif можно было атаковать обработку AVIF, в сентябре проблема в next/og позволяла влиять на генерируемый SVG. В этот раз код оптимизатора в Next.js не менялся: исправление пришло вместе с обновлённым sharp и librsvg. Red Hat оценивал саму проблему librsvg в 7,8 балла и указывал на необходимость взаимодействия с вредоносным файлом, тогда как Vercel оценила сетевой сценарий в Next.js в 9,5. Разница хорошо показывает, почему оценка CVSS компонента не всегда описывает риск конкретной интеграции.

Публичных данных об эксплуатации этих трёх ошибок на 15 октября не было. Но проверять продакшен после обновления Next.js лучше до того, как это сделают злоумышленники: особенно если приложение принимает SVG от пользователей, использует next/og, Cache Components или Server Actions. Следующий неприятный вопрос для команд — насколько тщательно они учитывают нативные библиотеки, которые приезжают транзитивно вместе с удобным JavaScript-фреймворком. Исходные рекомендации и технические идентификаторы уязвимостей доступны в материале The Hacker News.

Поделиться: Telegram X LinkedIn