# Две критические уязвимости Next.js: Что Вам нужно сделать сейчас?

> Две критические уязвимости Next.js: Какие обновления нужны, почему sharp необходимо проверить отдельно и что запросить у Вашего агентства.

- Quelle: https://bezahlbare-webseite.de/ru/ratgeber/nextjs-kritische-rce-luecken-was-tun/
- Datum: 2026-10-22
- Sprache: ru
- Thema: Technik & Sicherheit

В Next.js подтверждены две критические уязвимости. Затронуты ли сайт Вашей компании, интернет-магазин или клиентский портал, зависит от используемых функций и версий. Попросите проверить продуктивный Deployment: фактически развёрнутую версию Вашего приложения. Исследование для этой статьи отражает состояние информации на 22 октября 2026 года.

## Что произошло с Next.js?

Next.js — программное обеспечение для веб-приложений, которые работают в том числе на сервере. 14 октября 2026 года разработчик опубликовал два уведомления о безопасности. Оба описывают возможность удалённого выполнения кода, сокращённо RCE: при определённых условиях злоумышленники могут выполнить посторонний программный код на сервере.

Уязвимость обработки изображений обозначена как GHSA-2464-fhr4-w9xw / CVE-2026-96889. Она затрагивает Image Optimization — оптимизацию изображений на сервере. SVG-изображение с содержимым, контролируемым злоумышленником, должно попасть в уязвимый механизм обработки через разрешённый источник изображений. Этот путь описан для Linux с системной библиотекой glibc.

Для уязвимости обработки изображений разработчик указывает Next.js от 10.0.0 до 15.5.27 включительно, а также версии выше 16.0.0 до 16.4.0 включительно. Статус именно 16.0.0 остаётся неясным: NHS England также указывает эту версию как затронутую; разъяснения разработчика в исследовании нет. Это не означает, что 16.0.0 можно считать безопасной. Для предварительных версий исследование не указывает явных границ.

Уязвимость кеша GHSA-673q-mjm6-r5xr затрагивает версии от 16.0.0 до 16.4.0 включительно. В уведомлении разработчика не указан известный идентификатор CVE. Необходимо сочетание App Router для управления страницами, Cache Components для кеширования и функции с пометкой «use cache», которая возвращает несколько Typed Arrays — массивов с заданным типом данных. Оптимизация изображений и sharp не указаны как необходимые условия этой уязвимости; уведомление не ограничивает её системами с glibc или серверами, которые Вы обслуживаете самостоятельно.

## Насколько опасны эти две уязвимости на самом деле?

Обе получили по 9,5 балла по CVSS 4.0 — системе оценки технической серьёзности уязвимостей. Согласно оценке, возможны сетевые атаки без предварительного получения прав доступа и без участия пользователя. Однако технические условия всё равно должны выполняться.

Исследование подтверждает наличие общедоступного демонстрационного кода, Proof of Concept или PoC, только для уязвимости обработки изображений. Один автор описывает выполнение кода через оптимизацию изображений; работоспособность независимо не подтверждена. Для уязвимости кеша достоверного общедоступного кода атаки не найдено.

Проверенные источники не подтверждают активную эксплуатацию и успешные взломы через исследованные пути. В каталоге CISA-KEV известных эксплуатируемых уязвимостей по состоянию на 21 октября 2026 года отсутствовали как CVE уязвимости обработки изображений, так и запись по идентификатору уязвимости кеша. Ни PoC, ни попытка атаки не доказывают успешный взлом. Отсутствие записи в KEV не гарантирует отсутствия атак.

## Какие версии исправляют обе уязвимости?

Следующие минимальные версии относятся исключительно к этим уязвимостям. Для более старых веток Next.js исследование не указывает отдельных исправленных выпусков. Попросите запланировать переход на другую версию, если он необходим.

Для Next.js 15.5.28 одного номера версии недостаточно: описание пакета, то есть манифест, допускает sharp как необязательную зависимость с диапазоном ^0.34.3 || ^0.35.5. Таким образом, старая ветка остаётся допустимой. Lockfile фиксирует конкретные выбранные версии пакетов и может по-прежнему содержать старую версию sharp. Решающее значение имеет версия, фактически используемая Next.js. В 16.4.1 и 16.4.2 уже указан диапазон ^0.35.5.

- Next.js 15: 15.5.28 — первое официальное исправление уязвимости обработки изображений. При этом фактически используемая библиотека обработки изображений sharp должна быть не ниже 0.35.5.
- Next.js 16: 16.4.1 — первое исправление обеих уязвимостей. 16.4.2 — проверенный последующий выпуск, сохраняющий исправления, а не заново объявленная минимальная версия.
- sharp: не ниже 0.35.5. Исправленные готовые пакеты содержат librsvg 2.63.2 для обработки SVG. Если librsvg подключается отдельно из системы, сопровождающий проекта требует обновить её до 2.63.2.

## Как проверить, затронут ли мой сайт?

Для проверки нужен доступ к проекту либо к панели управления хостингом, но не права root, то есть не полный административный доступ к серверу. Если у Вас нет такого доступа, проверку выполняет Ваш оператор.

Нужно различать исходный код, Lockfile, установленную среду и продуктивный Deployment: исходный код описывает функции, а Lockfile — выбранные зависимости. Локальная установка и обновлённый проект ещё не доказывают, что работающий сервис обновлён.

- Уточните ответственность: Отдельно для сайта, интернет-магазина и клиентского портала выясните, используется ли Next.js и кто обслуживает приложение.
- Проверьте файлы пакетов: Найдите next и sharp в package.json. Там могут быть указаны диапазоны версий; package-lock.json, pnpm-lock.yaml или yarn.lock фиксируют конкретные версии.
- Получите данные установленной среды: Если имеется установка, совместимая с npm, выполните в каталоге проекта npm ls next sharp --all. npm — менеджер пакетов. Учитывайте все копии sharp, особенно ту, которую использует Next.js. Если пакеты отсутствуют, запросите у агентства дерево зависимостей с определёнными версиями.
- Поручите проверить условия: Источники изображений, обработку SVG и glibc-Linux проверяйте отдельно от App Router, Cache Components и возвращаемых значений «use cache». Отсутствия совпадений при поиске в собственном коде недостаточно, чтобы считать угрозу исключённой.
- Подтвердите продуктивное состояние: Выберите активный Deployment в панели управления хостингом. Сопоставьте соответствующие версии исходного кода и Lockfile с Build-Log — журналом сборки приложения. Запросите подтверждение фактически развёрнутых версий.

## Что написать моему агентству или хостинг-провайдеру?

Скопируйте этот запрос и укажите Ваш домен:

«Здравствуйте, пожалуйста, проверьте наш сайт по адресу [Domain] на GHSA-2464-fhr4-w9xw / CVE-2026-96889 и GHSA-673q-mjm6-r5xr. Укажите продуктивные версии Next.js и sharp, включая все экземпляры sharp, если их несколько, и экземпляр, используемый Next.js. Подтвердите их соответствующей версией Lockfile и активным Deployment с Build-Log. Проверьте отдельно Image Optimization, разрешённые источники изображений, обработку SVG, сервис обработки изображений и glibc-Linux, а также App Router, Cache Components и use cache с возвратом нескольких Typed Arrays. Если требуется обновление, после него подтвердите продуктивные версии, а также дату, время, часовой пояс и идентификатор исправленного Deployment. Если сайт не затронут, укажите конкретное техническое обоснование. Спасибо.»

## Что делать, если обновить сразу невозможно?

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

Для пути через изображения сопровождающий sharp описывает блокировку обработки SVG с помощью sharp.block({ operation: ["VipsForeignLoadSvg"] }). Разработчики должны убедиться, что это действует в фактически используемом процессе. Против уязвимости кеша эта мера не помогает. Само по себе распознавание SVG и dangerouslyAllowSVG: false не обеспечивают подтверждённой защиты.

Исследование не подтверждает наличие специального защитного правила Cloudflare или WAF — фильтра веб-запросов. Общие защитные функции не заменяют подтверждения установки исправления.

Поручите обновить пакеты и Lockfile, заново собрать приложение и развернуть исправленный Deployment. npm ci использует существующий Lockfile без изменений. Перезапуск без обновления пакетов не устраняет уязвимость.

## Частые вопросы об уязвимостях Next.js

### WordPress и плагины обновлены — этого достаточно?

Сайт, работающий только на PHP/WordPress, не становится затронутым лишь из-за этих уведомлений о Next.js. Дополнительно используемый фронтенд на Next.js нужно проверить отдельно. Версии WordPress, PHP и браузера не подтверждают его состояние.

### Защищает ли Cloudflare?

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

### У меня статический сайт — меня это касается?

Без описанных серверных функций отсутствуют необходимые условия для этих путей атаки. Попросите подтвердить, выдаются ли только готовые файлы или дополнительно работает приложение Next.js либо обработка изображений.

### Next.js 15.5.28 — я в безопасности?

Манифест по-прежнему допускает старую ветку sharp ^0.34.3. Попросите проверить по Lockfile и продуктивному Deployment, что Next.js фактически использует sharp версии от 0.35.5. Это утверждение относится только к исследованной уязвимости обработки изображений.

### Vercel/Managed Hosting — нужно ли мне что-то делать?

Запросите подтверждение конкретного состояния Вашего Deployment. Исследование не подтверждает автоматическую полную защиту всех Deployment на Vercel. При Managed Hosting, то есть хостинге с обслуживанием, ответственность и защитные меры зависят от провайдера и используемого сервиса.

### Как распознать атаку?

Заблокированный веб-запрос не доказывает успешный взлом. При конкретном подозрении попросите оператора провести расследование. В проверенной информации нет подтверждённых взломов через эти пути.

---
Veröffentlicht von bezahlbare-webseite.de — Website im Abo ab 79 €/Monat. https://bezahlbare-webseite.de/