---
title: 'Node.js і Next.js: критичні вразливості та як захистити сайт'
description: 'Протягом тижня в Node.js і Next.js виявили дві критичні вразливості. Дізнайтеся, як оновити програмне забезпечення та покроково захистити свій сайт.'
image: 'https://zomro.com/static/site/images/logo/logo-white.png?v=1793275020'
---

![opened image]()

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



# Node.js і Next.js: дві критичні вразливості за тиждень і як захистити сайт

27-10-2026

За один тиждень жовтня 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 хвилин роботи.

[Замовити оновлення]

**Premium: швидка допомога, коли вона потрібна**

Якщо сайт упав після оновлення, кожна година простою коштує грошей. За звичайним технічним запитом відповідь може займати до 10 годин. З Premium ми відповідаємо за час від 5 до 30 хвилин.

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

[Підключити Premium]

Схожі статті

[Node.js і Next.js: дві критичні вразливості за тиждень і як захистити сайт](https://zomro.com/ua/blog/articles/749-nodejs-and-nextjs-two-critical-vulnerabilities-in-one-week-and-how-to-protect-your-website) [Ключ сертифіката виявився числом 4: що оновити на сервері](https://zomro.com/ua/blog/articles/748-the-certificate-key-turned-out-to-be-the-number-4-what-needs-to-be-updated-on-the-server) [Викрадені AI-ключі: як LiteLLM, Railway та OpenCode підвели розробників](https://zomro.com/ua/blog/articles/747-stolen-ai-keys-how-litellm-railway-and-opencode-let-developers-down) [PHP2Shell: як перевірити свій сервер і закрити небезпечну вразливість PHP](https://zomro.com/ua/blog/articles/746-php2shell-how-to-check-your-server-and-close-a-dangerous-php-vulnerability) [Безпека на хмарному VPS: як захистити сервер від атак](https://zomro.com/ua/blog/articles/541-security-on-cloud-vps-how-to-protect-the-server-from-attacks)

[ Виділені сервери від €74.24/міс ](/ua/dedicated-servers)
