Strony internetowe · Bezpieczeństwo · Next.js

Next.js 16.4 i krytyczne łatki z 14 października: co zrobić ze stroną firmową

Nowa wersja frameworka, na którym działa wiele stron firmowych, i dwie krytyczne luki załatane tydzień później. Sprawdź, w której wersji jest Twoja strona i jak wygląda bezpieczna aktualizacja.

zaktualizowano 3 min czytaniaENAPPIA

Next.js to framework, w którym zbudowana jest też ta strona. 6 października Vercel wydał wersję 16.4, a 14 października osobną aktualizację bezpieczeństwa, która zamyka dwie krytyczne luki i jedną wysoką. Jeśli Twoja strona działa na Next.js, ten wpis pomoże ustalić, czy jest bezpieczna i co zmienia nowa wersja.

Co zamyka aktualizacja z 14 października

Łatki są w wersjach 16.4.1 (bieżąca linia) i 15.5.28 (linia utrzymaniowa). Ogłoszenie wymienia tylko te dwie linie; dla starszych, na przykład Next.js 14, nie ma w nim poprawek. Zespół Next.js zaleca aktualizację od razu:

  • Zdalne wykonanie kodu bez logowania w funkcjach use cache zwracających kilka tablic typowanych (GHSA-673q-mjm6-r5xr, krytyczna). Dotyczy aplikacji z App Routerem i Cache Components. Nie ma obejścia, trzeba zaktualizować, nawet jeśli strona nie ma takich funkcji.
  • Zdalne wykonanie kodu przez optymalizację obrazów SVG (CVE-2026-96889, krytyczna). Błąd w bibliotece używanej do przetwarzania obrazów, groźny na serwerach Linux z glibc. Obejście tymczasowe: biblioteka sharp w wersji co najmniej 0.35.5.
  • Blokada serwera przez spreparowane żądania do Server Actions (GHSA-p3m5-59mp-jv5r, wysoka). Dotyczy aplikacji z App Routerem i co najmniej jedną Server Action.

Polecenie aktualizacji z ogłoszenia:

npm install next@16.4.1   # dla linii 16.4
npm install next@15.5.28  # dla linii 15.5

Co nowego w 16.4

Najważniejsza zmiana to Cache Components. Od 16.4 Vercel poleca ten model każdej aplikacji, nowe projekty z create-next-app mają go włączonego, a w Next.js 17 stanie się domyślny. Cache Components pozwalają oznaczyć fragment strony jako cache'owany ('use cache') i łączyć na jednej stronie treść statyczną z treścią liczoną przy każdym żądaniu.

Inne zmiany, które odczuje właściciel strony:

  • ensureStatic pilnuje, żeby strona ofertowa albo blog zawsze były generowane statycznie. Jeśli ktoś dołoży dynamiczny element, build się nie uda, zamiast po cichu zwiększać koszty serwera.
  • Komenda next upgrade --agent prowadzi agenta kodującego przez aktualizację: sprawdza wersję, dobiera przewodnik migracji i kroki weryfikacji. Nowa opcja experimental.agentUpgrade przypomina o aktualizacjach bezpieczeństwa podczas pracy.
  • Mniejsze pakiety produkcyjne (krótsze nazwy klas CSS, skracanie nazw eksportów) i o 20–25% mniejszy cache Turbopacka na dysku.
  • React 19.3 ze stabilnymi View Transitions.

Jak mogłoby wyglądać wdrożenie w firmie

Aktualizacja strony firmowej to w praktyce cztery kroki.

  1. Ustalenie wersji. Sprawdzamy package.json i package-lock.json oraz to, gdzie strona jest hostowana. Luka w obrazach dotyczy serwerów Linux z glibc, a o podatności decyduje wersja biblioteki sharp w zależnościach projektu, więc sprawdzamy ją w package-lock.json.
  2. Aktualizacja na gałęzi testowej. Podnosimy Next.js do 16.4.1 lub nowszej, uruchamiamy build i lint. Przy skoku z wersji 14 albo 13 przechodzimy przewodniki migracji między wersjami głównymi, bo zmieniają się API i konfiguracja.
  3. Podgląd przed produkcją. Sprawdzamy formularze, obrazy, dane strukturalne i konsolę przeglądarki na kilku podstronach. Dopiero potem zmiana trafia na produkcję.
  4. Przypomnienia o łatkach. Zostawiamy domyślne przypomnienia experimental.agentUpgrade (polityka 'security'), żeby kolejna luka nie czekała na przypadek.

Przy stronach z włączonymi Cache Components, które nie zmieniają treści na żądanie (oferta, cennik, blog), dokładamy ensureStatic, bo każdy nieplanowany render na serwerze to koszt i wolniejsza odpowiedź.

Na co uważać

  • Strona bez aktualizacji od roku może być na linii, dla której łatki już nie wychodzą. Wtedy decydujemy między migracją a przebudową.
  • Cache Components zmieniają sposób myślenia o cache'owaniu. Przy istniejącej aplikacji to osobne zadanie z własnymi testami. Vercel udostępnia skille dla agentów do tej migracji, ale wynik trzeba przetestować.
  • Agent kodujący nie zastąpi testów. next upgrade --agent przyspiesza pracę, ale formularz kontaktowy i integracje sprawdza człowiek.

Jeśli nie wiesz, na jakiej wersji działa Twoja strona, zobacz, jak wygląda audyt i aktualizacja w ramach stron internetowych w ENAPPIA.

Źródła

Opisujemy nowości na podstawie publicznych ogłoszeń producentów (linki w sekcji „Źródła”). Ceny i parametry mogą się zmienić po publikacji. Uwagi do treści: info@enappia.pl.

Chcesz sprawdzić, czy to zadziała u Ciebie?

Opisz, co chcesz usprawnić. W dni robocze zwykle w ciągu 24 godzin odpowiadamy, czy to ma sens, ile potrwa i ile kosztuje.