---
title: 'Node.js i Next.js: krytyczne luki w zabezpieczeniach i jak chronić stronę'
description: 'W ciągu tygodnia w Node.js i Next.js wykryto dwie krytyczne luki w zabezpieczeniach. Dowiedz się, jak zaktualizować oprogramowanie i krok po kroku zabezpieczyć swoją stronę.'
image: 'https://zomro.com/static/site/images/logo/logo-white.png?v=1793275020'
---

![opened image]()

  * [Zomro](https://zomro.com/pl/)
  * [Przydatne artykuły](https://zomro.com/pl/blog/articles/)
  * [Bezpieczeństwo hostingu](https://zomro.com/pl/blog/articles/bezopasnost/)
  * Node.js i Next.js: dwie krytyczne luki w zabezpieczeniach w tydzień i jak chronić stronę 



# Node.js i Next.js: dwie krytyczne luki w zabezpieczeniach w tydzień i jak chronić stronę

27-10-2026

W ciągu jednego tygodnia października 2026 roku wyszły pilne poprawki dla Node.js i Next.js. W obu znaleziono podatności, przez które atakujący może uruchomić swój kod na Twoim serwerze.

Jeśli Twoja strona, sklep internetowy lub bot działa na Node.js albo Next.js, zaktualizuj je. Zajmie to od 15 do 30 minut. Poniżej prosta instrukcja krok po kroku.

### Czym są Node.js i Next.js

Wyobraź sobie samochód.

Node.js to silnik. Sprawia, że program działa na serwerze. Jeżdżą na nim tysiące stron, botów, API i sklepów internetowych.

Next.js to nadwozie i wnętrze. Gotowa baza dla strony: podstrony, obrazy, formularze. Next.js zawsze działa na Node.js.

> W październiku znaleziono problemy zarówno w silniku, jak i w nadwoziu. Dlatego naprawić trzeba oba. Jeśli zaktualizujesz tylko Next.js, silnik zostanie z defektem. I odwrotnie.

### Node.js: niebezpieczne rozpakowywanie

21 października Node.js wydał poprawki od razu dla 10 podatności. Najgroźniejsza z nich otrzymała numer CVE-2026-111497.

**Na czym polega ten błąd.** Aby dane szybciej przesyłały się przez sieć, są kompresowane. Jedna z popularnych metod kompresji nazywa się Brotli. Node.js potrafi rozpakowywać takie dane. W dekompresorze znaleziono błąd.

Wyobraź sobie próżniowy worek z rzeczami. Rozcinasz go i rzeczy zajmują swoje miejsce na półce. A teraz wyobraź sobie specjalnie przygotowany worek. Przy rozpakowaniu rzeczy wysypują się poza półkę i spadają na sąsiednie. Tak jest i tutaj: specjalnie przygotowane dane przy rozpakowywaniu zapisują się tam, gdzie nie powinny. Dzięki temu atakujący może uruchomić swój kod.

**Kto jest zagrożony.** Wszystkie aplikacje, które rozpakowują cudze skompresowane dane. Na przykład jeśli Twój serwer odbiera odpowiedzi od zewnętrznych API przez fetch() lub działa na Express 5.

**Jeszcze trzy poważne błędy.** Dotyczą sprawdzania certyfikatów i adresów. Wyobraź sobie ochroniarza sprawdzającego przepustki. Jeśli numer na przepustce zapisać specjalną czcionką, ochroniarz przepuści niewłaściwą osobę. Podobnie Node.js w niektórych przypadkach mógł uznać podróbkę za prawdziwy serwer.

> Obejścia nie ma. Jedyną ochroną jest aktualizacja.

### Next.js: obrazek z niespodzianką

14 października Next.js wydał pilną aktualizację. Zamyka ona dwie krytyczne podatności z oceną 9,5 na 10 i jedną wysoką.

**Pierwsza: niebezpieczne obrazy SVG (CVE-2026-96889).** Next.js potrafi sam zmniejszać i kompresować obrazy dla strony. W tym celu używa biblioteki sharp. Znaleziono w niej błąd przy przetwarzaniu obrazów w formacie SVG.

To jak koń trojański. Z zewnątrz zwykły obrazek. Ale w środku ukryty jest kod, który uruchamia się, gdy serwer zaczyna go przetwarzać. Jest to niebezpieczne, jeśli Twoja strona pozwala użytkownikom wgrywać obrazy. Podatne są wersje Next.js od 10 do 15.5.27 oraz od 16.0 do 16.4.0.

**Druga: błąd w pamięci podręcznej (GHSA-673q-mjm6-r5xr).** Dotyczy tylko nowych stron na Next.js 16 z włączoną funkcją Cache Components. Atakujący może uruchomić swój kod bez hasła. Tymczasowego rozwiązania nie ma, tylko aktualizacja.

**Trzecia: odmowa usługi.** Przez specjalne żądania do formularzy strony (Server Actions) można “zarzucić” serwer i strona przestanie się otwierać.

> Ważna uwaga. Zwykłe sprawdzenie npm audit nie widzi wszystkich tych podatności. Dlatego nie warto polegać tylko na nim. Sprawdzaj wersje ręcznie, jak opisano poniżej.

### Kogo to dotyczy

**Node.js.** Wszystkich, u kogo na serwerze działa coś na Node.js:

  * strony na Next.js, Nuxt, Remix, Astro;
  * API na Express, NestJS, Fastify;
  * boty Telegram i Discord;
  * panele administracyjne, panele zarządzania, sklepy internetowe w JavaScript;
  * programy w kontenerach Docker na obrazach node:.



**Next.js.** Wszystkich, których strona jest zrobiona na Next.js w wersjach od 10 do 16.4.0 i działa na własnym serwerze lub VPS.

Node.js 20, 23, 25 i wcześniejsze wersje nie otrzymają poprawek. Ich wsparcie się skończyło. To jak telefon, dla którego nie wychodzą już aktualizacje bezpieczeństwa. Można z niego korzystać, ale z każdym miesiącem jest to bardziej ryzykowne.

### Sprawdź wersje

Połącz się z serwerem przez SSH.

Wersja Node.js:
    
    
    node -v

Wersje Next.js i sharp. Przejdź do folderu strony i wykonaj:
    
    
    npm ls next sharp

Porównaj z tabelą:

Co | Bezpieczna wersja  
---|---  
Node.js 22 | 22.23.4 i wyższa  
Node.js 24 | 24.22.1 i wyższa  
Node.js 26 | 26.12.1 i wyższa  
Node.js 20, 23, 25 i starsze | Poprawki nie ma, potrzebne przejście na 22, 24 lub 26  
Next.js 16 | 16.4.1 i wyższa (obecnie najnowsza to 16.4.3)  
Next.js 15 | 15.5.28 i wyższa  
Next.js 14 i starsze | Poprawki nie ma, potrzebne przejście na 15 lub 16  
sharp | 0.35.5 i wyższa  
  
Na serwerze może być kilka instalacji Node.js. Na przykład jeśli instalowałeś go przez nvm lub działa wewnątrz Dockera. Polecenie node -v pokaże tylko jedną. Sprawdź jeszcze procesy, które faktycznie są uruchomione:
    
    
    ps aux | grep node

### Zaktualizuj Node.js

Sposób zależy od tego, jak zainstalowano Node.js.

**Jeśli przez nvm (najczęstszy wariant u programistów):**
    
    
    nvm install 24
    nvm alias default 24

Zamiast 24 podstaw swoją gałąź: 22, 24 lub 26. nvm sam zainstaluje najnowszą wersję tej gałęzi.

**Jeśli przez menedżer pakietów Ubuntu lub Debian:**
    
    
    sudo apt update
    sudo apt install --only-upgrade nodejs

**Jeśli w Dockerze.** Zmień wersję w pierwszej linii Dockerfile. Na przykład:
    
    
    FROM node:24.22.1-bookworm-slim

Po aktualizacji ponownie wykonaj node -v i upewnij się, że wersja jest zgodna z tabelą.

**Jeśli masz Node.js 20 lub starszy.** Przejście na 22 lub 24 to już nie zwykła aktualizacja, a przeprowadzka. Jak z Windows 7 na Windows 11: większość programów zadziała, ale coś może się zepsuć. Najpierw sprawdź stronę na serwerze testowym.

### Zaktualizuj Next.js i sharp

Przed aktualizacją zapisz kopię projektu lub zrób commit w git. Jeśli coś pójdzie nie tak, wrócisz w minutę.

**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

Drugie polecenie jest ważne. Na Next.js 15 po aktualizacji często zostaje stara sharp 0.34. Wtedy luka z obrazami pozostaje otwarta.

Sprawdź wynik:
    
    
    npm ls next sharp

I zbuduj stronę ponownie:
    
    
    npm run build

**Bonus.** Jeśli dawno nie aktualizowałeś, ta aktualizacja zamknie też podatności naprawione we wrześniu. Wtedy Next.js wydał jeszcze jedną poprawkę niebezpiecznego błędu w generowaniu obrazów i siedem poprawek dotyczących pamięci podręcznej i ochrony danych.

### Zrestartuj i zbuduj ponownie

Po aktualizacji nowa wersja leży na dysku. Ale stara nadal działa w pamięci, dopóki jej nie zrestartujesz. To jak kupić nowe opony i wozić je w bagażniku. Samochód wciąż jedzie na starych.

**Jeśli strona jest uruchomiona przez PM2:**
    
    
    pm2 restart all

**Jeśli przez systemd (zamiast mysite podaj nazwę swojej usługi):**
    
    
    sudo systemctl restart mysite

**Jeśli w Dockerze:**
    
    
    docker compose build --pull
    docker compose up -d

Flaga --pull zmusza Docker do pobrania świeżego obrazu bazowego. Bez niej może wziąć stary z pamięci podręcznej.

Po restarcie otwórz stronę i sprawdź główne podstrony, formularze i wgrywanie obrazów.

### Lista kontrolna

  * Sprawdziłem wersję Node.js poleceniem node -v
  * Sprawdziłem, czy nie ma innych uruchomionych Node.js
  * Zaktualizowałem Node.js do 22.23.4, 24.22.1 lub 26.12.1
  * Zapisałem kopię projektu przed aktualizacją
  * Zaktualizowałem Next.js do 16.4.1+ lub 15.5.28+
  * Sprawdziłem, że sharp nie jest niższa niż 0.35.5
  * Zbudowałem stronę ponownie poleceniem npm run build
  * Zrestartowałem aplikację lub kontenery
  * Sprawdziłem, że strona, formularze i obrazy działają



### Nie chcesz się w to zagłębiać sam?

Na papierze wszystko wygląda prosto. W praktyce po aktualizacji Next.js build może się wywalić z niezrozumiałym błędem. Albo na serwerze okażą się trzy różne wersje Node.js i nie wiadomo, która z nich obsługuje stronę. Albo przejście z Node.js 20 pociągnie za sobą aktualizację połowy zależności.

Na takie przypadki Zomro ma dwie opcje.

**SOD: zaktualizujemy za Ciebie**

Nasz administrator systemów:

  * znajdzie wszystkie wersje Node.js na serwerze i w kontenerach;
  * zaktualizuje Node.js, Next.js i sharp do bezpiecznych wersji;
  * zbuduje ponownie i zrestartuje aplikację;
  * sprawdzi, że strona działa po aktualizacji.



Koszt: €12.50 za każde 15 minut pracy.

[Zamów aktualizację]

**Premium: szybka pomoc, gdy jest potrzebna**

Jeśli strona przestała działać po aktualizacji, każda godzina przestoju kosztuje pieniądze. Na zwykłe zgłoszenie techniczne odpowiedź może zająć do 10 godzin. Z Premium odpowiadamy w czasie od 5 do 30 minut.

Node.js i Next.js wydają poprawki bezpieczeństwa prawie co miesiąc. Z Premium nie będziesz musiał radzić sobie z nimi sam.

[Podłącz Premium]

Similar articles:

[Node.js i Next.js: dwie krytyczne luki w zabezpieczeniach w tydzień i jak chronić stronę](https://zomro.com/pl/blog/articles/749-nodejs-and-nextjs-two-critical-vulnerabilities-in-one-week-and-how-to-protect-your-website) [Klucz certyfikatu okazał się liczbą 4: co zaktualizować na serwerze](https://zomro.com/pl/blog/articles/748-the-certificate-key-turned-out-to-be-the-number-4-what-needs-to-be-updated-on-the-server) [Skradzione klucze AI: jak LiteLLM, Railway i OpenCode zawiodły programistów](https://zomro.com/pl/blog/articles/747-stolen-ai-keys-how-litellm-railway-and-opencode-let-developers-down) [PHP2Shell: jak sprawdzić swój serwer i załatać niebezpieczną lukę w PHP](https://zomro.com/pl/blog/articles/746-php2shell-how-to-check-your-server-and-close-a-dangerous-php-vulnerability)

[ Serwery dedykowane od €74.24/mies ](/pl/dedicated-servers)
