---
title: 'Node.js и Next.js: критические уязвимости и как защитить сайт'
description: 'За неделю в Node.js и Next.js обнаружили две критические уязвимости. Узнайте, как обновить их и защитить свой сайт за 15–30 минут.'
image: 'https://cdn.zomro.com/uploads/blog/a48%40server-panel.net/2026/10/27/gemini_generated_image_2efq8o2efq8o2efq_q50.jpg'
---

![opened image]()

  * [Zomro](https://zomro.com/rus/)
  * [Полезные статьи](https://zomro.com/rus/blog/articles/)
  * [Безопасность хостинга](https://zomro.com/rus/blog/articles/bezopasnost/)
  * Node.js и Next.js: две критические уязвимости за неделю и как защитить сайт 



# Node.js и Next.js: две критические уязвимости за неделю и как защитить сайт

27-10-2026

![](https://cdn.zomro.com/uploads/blog/a48%40server-panel.net/2026/10/27/gemini_generated_image_2efq8o2efq8o2efq_q50.jpg)

За одну неделю октября 2026 года вышли срочные исправления для Node.js и Next.js. В обоих нашли уязвимости, через которые злоумышленник может запустить свой код на вашем сервере.

Если ваш сайт, интернет-магазин или бот работает на Node.js или Next.js, обновите их. Это займёт от 15 до 30 минут. Ниже простая инструкция по шагам.

## 

## 

## Что такое Node.js и Next.js

Представьте автомобиль.

**Node.js это двигатель.** Он заставляет программу работать на сервере. На нём ездят тысячи сайтов, ботов, API и интернет-магазинов.

**Next.js это кузов и салон.** Готовая основа для сайта: страницы, картинки, формы. Next.js всегда работает поверх Node.js.

> В октябре нашли проблемы и в двигателе, и в кузове. Поэтому чинить нужно оба. Если обновить только Next.js, двигатель останется с дефектом. И наоборот.

## 

## 

## Node.js: опасная распаковка

21 октября Node.js выпустил исправления сразу для 10 уязвимостей. Самая опасная из них получила номер CVE-2026-111497.

**Что это за ошибка.** Чтобы данные быстрее передавались по сети, их сжимают. Один из популярных способов сжатия называется Brotli. Node.js умеет распаковывать такие данные. В распаковщике нашли ошибку.

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

**Кому опасно.** Всем приложениям, которые распаковывают чужие сжатые данные. Например, если ваш сервер получает ответы от сторонних API через `fetch()` или работает на Express 5.

**Ещё три серьёзные ошибки.** Они связаны с проверкой сертификатов и адресов. Представьте охранника, который проверяет пропуска. Если написать номер на пропуске особым шрифтом, охранник пропустит не того человека. Так и Node.js в некоторых случаях мог принять подделку за настоящий сервер.

> Обходного пути нет. Единственная защита это обновление.

## 

## 

## Next.js: картинка с сюрпризом

14 октября Next.js выпустил срочное обновление. Оно закрывает две критические уязвимости с оценкой 9.5 из 10 и одну высокую.

**Первая: опасные SVG-картинки (CVE-2026-96889).** Next.js умеет сам уменьшать и сжимать картинки для сайта. Для этого он использует библиотеку sharp. В ней нашли ошибку при обработке картинок формата SVG.

Это как троянский конь. Снаружи обычная картинка. Но внутри спрятан код, который запускается, когда сервер начинает её обрабатывать. Опасно, если ваш сайт позволяет пользователям загружать картинки. Уязвимы версии Next.js с 10 по 15.5.27 и с 16.0 по 16.4.0.

**Вторая: ошибка в кэше (GHSA-673q-mjm6-r5xr).** Касается только новых сайтов на Next.js 16 с включённой функцией Cache Components. Злоумышленник может запустить свой код без пароля. Временного решения нет, только обновление.

**Третья: отказ в обслуживании.** Через специальные запросы к формам сайта (Server Actions) можно «завалить» сервер, и сайт перестанет открываться.

> **Важный момент.** Привычная проверка `npm audit` видит не все эти уязвимости. Поэтому не стоит полагаться только на неё. Проверяйте версию вручную, как описано ниже.

## 

## 

## Кого это касается

**Node.js.** Всех, у кого на сервере работает что-то на Node.js:

  * сайты на Next.js, Nuxt, Remix, Astro;
  * API на Express, NestJS, Fastify;
  * Telegram- и Discord-боты;
  * админки, панели, интернет-магазины на JavaScript;
  * программы в Docker-контейнерах на образах `node:`.



**Next.js.** Всех, у кого сайт сделан на Next.js версий с 10 по 16.4.0 и работает на собственном сервере или VPS.

**Node.js 20, 23, 25 и более ранние версии исправлений не получат.** Их поддержка закончилась. Это как телефон, на который больше не выходят обновления безопасности. Им можно пользоваться, но с каждым месяцем всё рискованнее.

## 

## 

## Узнайте версии

Подключитесь к серверу по SSH.

**Версия Node.js:**
    
    
    node -v

**Версии Next.js и sharp.** Перейдите в папку сайта и выполните:
    
    
    npm ls next sharp

Сравните с таблицей:

Что |  Безопасная версия  
---|---  
Node.js 22 |  22.23.4 и выше  
Node.js 24 |  24.22.1 и выше  
Node.js 26 |  26.12.1 и выше  
Node.js 20, 23, 25 и старее |  Исправления нет, нужен переход на 22, 24 или 26  
Next.js 16 |  16.4.1 и выше (сейчас последняя 16.4.3)  
Next.js 15 |  15.5.28 и выше  
Next.js 14 и старее |  Исправления нет, нужен переход на 15 или 16  
sharp |  0.35.5 и выше  
  
**На сервере может быть несколько Node.js.** Например, если вы ставили его через nvm или он работает внутри Docker. Команда `node -v` покажет только один. Проверьте ещё процессы, которые реально запущены:
    
    
    ps aux | grep node

## 

## 

## Обновите Node.js

Способ зависит от того, как Node.js был установлен.

**Если через nvm** (самый частый вариант у разработчиков):
    
    
    nvm install 24
    nvm alias default 24

Вместо `24` подставьте свою ветку: 22, 24 или 26. nvm сам поставит последнюю версию этой ветки.

**Если через пакетный менеджер Ubuntu или Debian:**
    
    
    sudo apt update
    sudo apt install --only-upgrade nodejs

**Если в Docker.** Поменяйте версию в первой строке `Dockerfile`. Например:
    
    
    FROM node:24.22.1-bookworm-slim

После обновления снова выполните `node -v` и убедитесь, что версия из таблицы.

**Если у вас Node.js 20 или старее.** Переход на 22 или 24 это уже не просто обновление, а переезд. Как с Windows 7 на Windows 11: большинство программ заработает, но кое-что может сломаться. Сначала проверьте сайт на тестовом сервере.

## 

## 

## Обновите Next.js и sharp

Перед обновлением сохраните копию проекта или сделайте коммит в git. Если что-то пойдёт не так, вы вернётесь назад за минуту.

**Next.js 16:**
    
    
    npm install next@latest eslint-config-next@latest

**Next.js 15:**
    
    
    npm install next@15.5.28
    npm install sharp@^0.35.5

Вторая команда важна. На Next.js 15 после обновления часто остаётся старая sharp 0.34. Тогда дыра с картинками остаётся открытой.

Проверьте результат:
    
    
    npm ls next sharp

И соберите сайт заново:
    
    
    npm run build

**Бонус.** Если вы давно не обновлялись, это обновление закроет и уязвимости, исправленные в сентябре. Тогда Next.js выпускал ещё одно исправление опасной ошибки в генерации картинок и семь исправлений по кэшу и защите данных.

## 

## 

## Перезапустите и пересоберите

После обновления новая версия лежит на диске. Но старая продолжает работать в памяти, пока вы её не перезапустите. Это как купить новые шины и возить их в багажнике. Машина всё ещё едет на старых.

**Если сайт запущен через PM2:**
    
    
    pm2 restart all

**Если через systemd** (вместо `mysite` укажите имя своей службы):
    
    
    sudo systemctl restart mysite

**Если в Docker:**
    
    
    docker compose build --pull
    docker compose up -d

Флаг `--pull` заставляет Docker скачать свежий базовый образ. Без него он может взять старый из кэша.

После перезапуска откройте сайт и проверьте главные страницы, формы и загрузку картинок.

## 

## 

## Чек-лист

  * Узнал версию Node.js командой `node -v`
  * Проверил, нет ли других запущенных Node.js
  * Обновил Node.js до 22.23.4, 24.22.1 или 26.12.1
  * Сохранил копию проекта перед обновлением
  * Обновил Next.js до 16.4.1+ или 15.5.28+
  * Проверил, что sharp не ниже 0.35.5
  * Пересобрал сайт командой `npm run build`
  * Перезапустил приложение или контейнеры
  * Проверил, что сайт, формы и картинки работают



## 

## 

## Не хотите разбираться сами?

На бумаге всё выглядит просто. На практике после обновления Next.js сборка может упасть с непонятной ошибкой. Или на сервере окажутся три разные версии Node.js, и неясно, какая из них обслуживает сайт. Или переход с Node.js 20 потянет за собой обновление половины зависимостей.

Для таких случаев у Zomro есть два варианта.  


### SOD: обновим за вас  


Наш системный администратор:  


  * найдёт все версии Node.js на сервере и в контейнерах;
  * обновит Node.js, Next.js и sharp до безопасных версий;
  * пересоберёт и перезапустит приложение;
  * проверит, что сайт работает после обновления.  




Стоимость: €12.50 за каждые 15 минут работы.  


[Заказать обновление](https://zomro.com/rus/paid-support-services/server-management-services)

### 

> ### Premium: быстрая помощь, когда она нужна  
> 

Если сайт упал после обновления, каждый час простоя стоит денег. По обычному техническому запросу ответ может занять до 10 часов. С Premium мы отвечаем за время от 5 до 30 минут.  


Node.js и Next.js выпускают исправления безопасности почти каждый месяц. С Premium вам не придётся разбираться с ними в одиночку.  


[Подключить Premium](https://zomro.com/rus/paid-support-services)

Похожие статьи

[Как с использованием mysqldump организовать создание автобэкапов](https://zomro.com/rus/blog/articles/578-how-to-organize-the-creation-of-automatic-backups-using-mysqldump) [PHP2Shell: как проверить свой сервер и закрыть опасную уязвимость PHP](https://zomro.com/rus/blog/articles/746-php2shell-how-to-check-your-server-and-close-a-dangerous-php-vulnerability) [Создаем надежный и безопасный пароль](https://zomro.com/rus/blog/articles/27-sozdaem-nadezhnyy-i-bezopasnyy-parol) [Украденные AI-ключи: как LiteLLM, Railway и OpenCode подвели разработчиков](https://zomro.com/rus/blog/articles/747-stolen-ai-keys-how-litellm-railway-and-opencode-let-developers-down) [Ключ от сертификата оказался числом 4: что обновить на сервере](https://zomro.com/rus/blog/articles/748-the-certificate-key-turned-out-to-be-the-number-4-what-needs-to-be-updated-on-the-server)

[ Выделенные серверы от €74.24/мес ](/rus/dedicated-servers)
