Next.js выпустил внеплановый патч для двух критических уязвимостей RCE в кэшировании и обработке SVG

next.js безопасность уязвимости обновление Rce Dos thehackernews.com

Next.js выпустил обновление безопасности, устраняющее критические уязвимости выполнения кода и отказа в обслуживании. Обновите Next.js до версии 16.4.1 или 15.5.28 для защиты от удаленного выполнения кода и атак типа «отказ в обслуживании».

14 октября Next.js выпустил внеплановое обновление безопасности, устраняющее два критических уязвимости, позволяющих удаленное выполнение кода без аутентификации, а также уязвимость отказа в обслуживании высокой степени опасности.
Одна из уязвимостей выполнения кода находится в React Server Components, а другая — в librsvg, библиотеке с открытым исходным кодом, которую Next.js использует через пакет sharp для обработки SVG-изображений.
Исправления внесены в версии Next.js 16.4.1 и 15.5.28, текущие релизы с долгосрочной поддержкой (LTS) Active и Maintenance.
Обновление охватывает три отдельные проблемы. Vercel, разработчик Next.js, оценил обе уязвимости выполнения кода как критические, каждой присвоен балл CVSS 9.5. В таблице указаны затронутые версии и версии, в которых уязвимости устранены.
Первая уязвимость выполнения кода находится в React Server Components — функции React, которая выполняет компоненты пользовательского интерфейса на сервере. В рекомендации React описаны три пакета: react-server-dom-webpack, react-server-dom-parcel и react-server-dom-turbopack, версии с 19.0.0 по 19.3.0. Уязвимость затрагивает «крайне редкие случаи, когда ответы передают несколько типизированных массивов и значение, контролируемое злоумышленником».
В приложении Next.js триггером является функция use cache, возвращающая более одного типизированного массива, поэтому уязвимы только приложения версии 16, использующие Cache Components — функцию, лежащую в основе use cache. Vercel рекомендует обновиться, даже если в вашем приложении нет такой функции.
Вторая уязвимость — это ошибка памяти в librsvg, библиотеке для рендеринга SVG-изображений, к которой Next.js обращается через пакет sharp. Выполнение кода возможно, когда Next.js работает на Linux на базе glibc, согласно рекомендациям.
По умолчанию Next.js не оптимизирует SVG-файлы. Для их обслуживания через оптимизатор изображений требуется включить настройку dangerouslyAllowSVG. Та же библиотека рендерит изображения для next/og — функции, создающей изображения для предварительного просмотра в социальных сетях, когда эта функция работает в среде выполнения Node.js.
Третья уязвимость связана с отказом в обслуживании. В приложениях App Router, где определено хотя бы одно Server Action, специально сформированные запросы могут привести к полной загрузке ЦП одного серверного процесса и прекращению обработки других запросов. Приложения на Pages Router или без Server Actions не затронуты.
Степень подверженности может различаться в зависимости от хостинга. Netlify сообщил, что их платформа не использует путь выполнения кода оптимизатора изображений, и уязвимости имеют ограниченное влияние на их конфигурацию, однако все же рекомендуют обновление.
Обновитесь до Next.js 16.4.1, если вы используете версию 16, или до 15.5.28, если используете версию 15, затем пересоберите и повторно разверните приложение.
В рекомендациях Vercel указано, что обновление Next.js автоматически поставляет исправленный sharp через менеджеры пакетов. Для версии 16 это работает, поскольку 16.4.1 требует sharp 0.35.5.
Для версии 15 это может быть не так. Версия 15.5.28 по-прежнему принимает старую, уязвимую версию sharp 0.34.x, и обновление поверх существующей установки может оставить эту версию. Проверьте с помощью npm ls sharp и обновите sharp до 0.35.5 или новее, если он старше.
Если вы не можете обновить Next.js немедленно, для уязвимости изображений есть временное решение: убедитесь, что sharp имеет версию 0.35.5 или новее, или заблокируйте рендеринг SVG в sharp с помощью sharp.block({ operation: ["VipsForeignLoadSvg"] }), как описано в рекомендациях sharp. Уязвимости use cache и Server Actions не имеют обходных путей, и только обновление их устраняет.
По состоянию на 15 октября, для уязвимостей use cache и Server Actions не было назначено CVE, и они не появлялись в ленте рекомендаций npm, которую использует npm audit, поэтому сканеры зависимостей могут не предупреждать о них. Уязвимость изображений обнаруживается через собственные рекомендации sharp.
Это третий случай с августа, когда обработка изображений в Next.js привела к уязвимости выполнения кода. В августе ошибка в libheif, доступная через sharp, позволяла выполнять код при обработке оптимизатором специально сформированного AVIF-изображения. В сентябре уязвимость в next/og позволяла тексту, контролируемому злоумышленником, изменять генерируемый SVG.
На этот раз Next.js не менял собственный код обработки изображений. Версия 16.4.1 поставляется с тем же оптимизатором, что и 16.4.0, и устраняет уязвимость изображений, обновляя встроенный sharp до версии 0.35.5, которая включает исправленную librsvg (2.63.2).
Ошибка в librsvg, CVE-2026-96889, была обнародована 23 сентября и исправлена в sharp 27 сентября. Red Hat оценил ее в 7.8 и заявил, что для эксплуатации требуется взаимодействие с пользователем, например, открытие вредоносного файла. Vercel оценил подверженность Next.js в 9.5 и доступность через сеть.
Исследователь, сообщивший об ошибке в librsvg, Рафаэль Б. Диас, утверждает, что именно эта слабость лежит в основе сентябрьской уязвимости next/og. Рабочий эксплойт для этой предыдущей уязвимости, созданный для конкретной серверной конфигурации, с тех пор был опубликован.
Разработчик sharp также предупреждает, что результат — выполнение кода или просто сбой — может зависеть от сборки Node.js на сервере, поскольку официальные бинарные файлы Node.js не защищены от такого типа атак на память.
Уязвимость React Server Components находится в тех же трех пакетах, что и React2Shell — уязвимость максимальной степени опасности, раскрытая в декабре 2025 года, которую злоумышленники использовали в больших масштабах. Эта уязвимость гораздо более узконаправленная. React описывает ее как затрагивающую «крайне редкие случаи, когда ответы передают несколько типизированных массивов и значение, контролируемое злоумышленником».
По состоянию на 15 октября нет публичных сообщений об использовании каких-либо из трех уязвимостей, исправленных 14 октября, в атаках.

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

В тренде:


Похожие новости: