---
title: "Next.js 16.4.5: aktualizacja bezpieczeństwa, kogo dotyczy"
description: "Next.js 16.4.5 i 15.5.29 z 3 listopada 2026 łatają siedem luk, w tym cztery w use cache i Cache Components. Kogo dotyczą, która linia ma poprawki i jak łatać."
canonical_url: "https://www.outofplace.space/pl/blog/nextjs-16-4-5-aktualizacja-bezpieczenstwa"
language: "pl"
last_updated: "2026-11-04"
alternates:
  en: "https://www.outofplace.space/blog/nextjs-16-4-5-security-release.md"
---

# Next.js 16.4.5: aktualizacja bezpieczeństwa, kogo dotyczy

> Next.js 16.4.5 i 15.5.29 z 3 listopada 2026 łatają siedem luk, w tym cztery w use cache i Cache Components. Kogo dotyczą, która linia ma poprawki i jak łatać.

Opublikowano 2026-11-04 · Kategoria: Next.js i React · Tagi: Next.js, Bezpieczeństwo, Cache

Next.js 16.4.5 i 15.5.29, czyli listopadowa aktualizacja bezpieczeństwa z 2026 roku, łatają siedem luk, z czego cztery w `use cache` i Cache Components. Obie wersje trafiły do npm 3 listopada 2026, o 18:01 i 18:36 UTC, a tag `latest` wskazuje teraz 16.4.5. Na Next.js 16 uruchom `npm install next@16.4.5`, na 15 – `npm install next@15.5.29`. Dotyczy to także [Next.js 16.4.4](https://www.outofplace.space/pl/blog/nextjs-16-4-4-aktualizacja), wydania z poprawkami błędów z poprzedniego dnia, które żadnej z tych luk nie naprawia. 15.5.29 ma trzy poprawki: wstrzykiwanie odpowiedzi za proxy, obejście blokady SVG w optymalizacji obrazów i nagłówek z ciasteczkami w trasach Edge. Pozostałe cztery dotyczą tylko aplikacji 16.x z Cache Components lub `use cache`. Jeśli używasz Cache Components z root params, hostujesz sam przez `next start`, ustawiasz ciasteczka w trasach Edge albo optymalizujesz zdalne obrazy, zaktualizuj dziś, a my wyczyścilibyśmy też każdy cache, który przeżywa deploy. Każde twierdzenie poniżej sprawdziliśmy 4 listopada 2026 w advisories, wydaniach na GitHubie, rejestrze npm i na blogu Next.js. Żadnej z luk nie odtwarzaliśmy.

  - Siedem advisories, od CVE-2026-119346 do CVE-2026-119351 oraz CVE-2026-119790, wszystkie opublikowane na GitHubie 3 listopada 2026.
  - Blog Next.js ocenia jedną lukę jako High i sześć jako Medium; GitHub daje wszystkim siedmiu Moderate, CVSS 4.0 od 6,0 do 6,9.
  - 16.4.5 zawiera dokładnie siedem poprawek. 15.5.29 zawiera trzy poprawki i zmiany w CI.
  - Linie 16.2 i 16.3 nie dostają backportu: przejdź na 16.4.5. 14.x nie dostaje nic.

## Co się zmieniło w Next.js 16.4.5 i 15.5.29

[Noty wydania 16.4.5](https://github.com/vercel/next.js/releases/tag/v16.4.5) wymieniają siedem advisories, a [noty wydania 15.5.29](https://github.com/vercel/next.js/releases/tag/v15.5.29) trzy z nich. W [porównaniu 16.4.4 i 16.4.5](https://github.com/vercel/next.js/compare/v16.4.4...v16.4.5) wydanie to osiem commitów: po jednej poprawce na advisory i podbicie wersji, bez innych zmian. [Porównanie 15.5.28 i 15.5.29](https://github.com/vercel/next.js/compare/v15.5.28...v15.5.29) dokłada do trzech poprawek trzy commity, które dotyczą tylko procesu wydań i CI samego Next.js. W [rejestrze npm](https://registry.npmjs.org/next) obie wersje mają te same zależności zewnętrzne, zakres peer dla Reacta i zakres Node.js co poprzednia łatka (`>=20.9.0` w 16.4.5), a jedyną inną zmianą jest `@next/env`, przypięty do dokładnej wersji `next`, który przesuwa się razem z nim w lockfile.

| Wersja  | W npm (UTC)        | Linia                  | dist-tag 4 listopada | Poprawki z listopada                                     |
| ------- | ------------------ | ---------------------- | -------------------- | -------------------------------------------------------- |
| 16.4.4  | 2 lis 2026, 10:49  | 16.x, Active LTS       | -                    | Brak                                                     |
| 16.4.5  | 3 lis 2026, 18:01  | 16.x, Active LTS       | `latest`             | Wszystkie siedem                                         |
| 15.5.28 | 14 paź 2026, 17:36 | 15.x, Maintenance LTS  | -                    | Brak                                                     |
| 15.5.29 | 3 lis 2026, 18:36  | 15.x, Maintenance LTS  | `backport`           | Wstrzykiwanie odpowiedzi, obejście SVG, nagłówek Edge    |

Każde advisory ma na GitHubie poziom zagrożenia, wynik CVSS 4.0 i identyfikator CVE; odczytaliśmy je 4 listopada przez [API advisories GitHuba](https://docs.github.com/en/rest/security-advisories/repository-advisories). [Wpis Next.js](https://nextjs.org/blog/november-2026-security-release) podaje własną ocenę i żadnego CVE:

| Advisory | Co idzie nie tak | Blog Next.js | GitHub (CVSS 4.0) | Poprawka w |
| -------- | ---------------- | ------------ | ----------------- | ---------- |
| [GHSA-mfr8-8qww-v76h](https://github.com/vercel/next.js/security/advisories/GHSA-mfr8-8qww-v76h), CVE-2026-119790 | Wynik `use cache` dla jednej wartości root param trafia do innych, gdy funkcję wywołuje też `unstable_cache` | High | Moderate (6,3) | 16.4.5 |
| [GHSA-vc7v-qv4w-wrv8](https://github.com/vercel/next.js/security/advisories/GHSA-vc7v-qv4w-wrv8), CVE-2026-119351 | Zewnętrzny wpis `use cache` zapisuje się bez root param, który odczytał wewnętrzny | Medium | Moderate (6,3) | 16.4.5 |
| [GHSA-vvgp-ww4w-46vf](https://github.com/vercel/next.js/security/advisories/GHSA-vvgp-ww4w-46vf), CVE-2026-119350 | Jedno żądanie może zatruć powłokę fallback, którą dzieli cała rodzina tras | Medium | Moderate (6,3) | 16.4.5 |
| [GHSA-rhh4-g77r-r9qj](https://github.com/vercel/next.js/security/advisories/GHSA-rhh4-g77r-r9qj), CVE-2026-119349 | Różne binarne argumenty funkcji `use cache` dostają ten sam klucz cache | Medium | Moderate (6,3) | 16.4.5 |
| [GHSA-pc58-hwjq-p385](https://github.com/vercel/next.js/security/advisories/GHSA-pc58-hwjq-p385), CVE-2026-119348 | Przekazana dalej odpowiedź z fetch zachowuje nagłówki ramkowania skompresowanej treści przy rozpakowanym body | Medium | Moderate (6,3) | 16.4.5, 15.5.29 |
| [GHSA-7qx7-33qx-rqx2](https://github.com/vercel/next.js/security/advisories/GHSA-7qx7-33qx-rqx2), CVE-2026-119347 | SVG podszyte pod AVIF omija `dangerouslyAllowSVG: false` | Medium | Moderate (6,9) | 16.4.5, 15.5.29 |
| [GHSA-f3mh-rxg3-f5g2](https://github.com/vercel/next.js/security/advisories/GHSA-f3mh-rxg3-f5g2), CVE-2026-119346 | Ciasteczko ustawione w trasie Edge ląduje w nagłówku `x-middleware-set-cookie`, który JavaScript z tego samego originu może odczytać | Medium | Moderate (6,0) | 16.4.5, 15.5.29 |

Root param to parametr trasy w root layoucie, na przykład `[locale]` albo `[tenant]` w `app/[tenant]/layout.tsx`, odczytywany przez `next/root-params`. Według advisories wpis `use cache` powinien zależeć od każdego root param, który odczytuje jego funkcja, obok argumentów, z których [use cache buduje klucz wpisu](https://www.outofplace.space/pl/blog/use-cache-w-nextjs-jak-dziala#jak-dziala-use-cache-kiedy-dwa-wywolania-dziela-wpis). Dwa z czterech błędów cache gubią root param z klucza, więc aplikacja, która rozdziela najemców, serwisy albo języki przez root param, może podać zbuforowane dane jednego najemcy drugiemu.

## Czy listopadowe luki są wysokie czy średnie?

Jedno i drugie, zależnie od źródła. [Zapowiedź z 27 października](https://nextjs.org/blog/upcoming-nextjs-security-release-november-2026) mówiła o „seven medium vulnerabilities”. Wpis z 3 listopada nazywa wyciek przez `unstable_cache` lukę High, a pozostałe sześć Medium. Advisories na GitHubie i obie noty wydania dają wszystkim siedmiu Moderate. Wyniki leżą blisko siebie: sześć advisories ma od 6,0 do 6,3, a obejście SVG ma 6,9, najwięcej, jako jedyne z wektorem CVSS bez wymagań ataku (`AT:N`) przy niskiej złożoności i bez udziału użytkownika. Jeśli śledzisz wyciek przez `unstable_cache`, zapisz ocenę High, bo wyciek między najemcami to poważna sprawa dla aplikacji multi-tenant, niezależnie od wyniku.

## Kogo dotyczą luki Next.js z listopada 2026

Każde advisory wymaga konkretnej konfiguracji. Znajdź swoją w lewej kolumnie; warunki pochodzą z advisories i wpisu Next.js.

| Dotyczy cię, jeśli | Advisory | Linie |
| ------------------ | -------- | ----- |
| Masz włączone Cache Components, a jedna publiczna funkcja `use cache`, która odczytuje root param, jest wywoływana bezpośrednio i wewnątrz `unstable_cache`, a wywołanie przez `unstable_cache` trafia na trwające pierwsze wypełnienie wpisu po starcie procesu (poza tym wyścigiem takie zagnieżdżenie rzuca błąd) | GHSA-mfr8 | 16.x od 16.3.0 |
| Wewnętrzna funkcja `use cache` odczytuje root param i zwraca gotowe dane obok wciąż oczekującego promise, a zewnętrzna funkcja `use cache` kończy się, nie czekając na niego | GHSA-vc7v | 16.x od 16.2.0 |
| Hostujesz sam przez `next start`, z `cacheComponents: true` i `partialPrefetching` nieustawionym lub `false`, a trasa dynamiczna ma blokującą powłokę fallback o kształcie opisanym w advisory | GHSA-vvgp | 16.x od 16.4.0 |
| Funkcja `use cache` przyjmuje binarne argumenty (`Uint8Array`, `Blob`), które odróżniają użytkowników lub konta | GHSA-rhh4 | 16.x |
| Hostujesz sam, route handler albo fetch cache zwraca pobrany `Response` bez zmian, a reverse proxy HTTP/1.1 kolejkuje żądania z pipeliningiem na wspólnym połączeniu z backendem | GHSA-pc58 | 16.x, 15.x i starsze |
| Hostujesz sam optymalizator obrazów (`/_next/image`), zostawiasz `images.dangerouslyAllowSVG` na domyślnym `false`, optymalizujesz obrazy z dozwolonego źródła, nad którym atakujący ma kontrolę, i używasz natywnego backendu, który umie dekodować SVG | GHSA-7qx7 | 16.x, 15.x |
| Route handler Edge w App Routerze albo trasa API Edge w Pages Routerze ustawia ciasteczko przez `NextResponse.cookies.set()` | GHSA-f3mh | 16.x, 15.x |

Wpis Next.js zawęża dwie z nich. Wyciek ciasteczek w Edge nie odtworzył się w route handlerach Node.js ani przy `cookies().set()`. Wymaga też, by na twoim originie działał już JavaScript atakującego, więc nie jest sposobem na uruchomienie skryptu. Wstrzykiwanie odpowiedzi wymaga opisanego zachowania proxy z pipeliningiem i nie dotyczy każdego reverse proxy. Trzy advisories (zatrucie powłoki, wstrzykiwanie odpowiedzi i obejście SVG) opisują wyłącznie self-hosting. [Wpis w changelogu Netlify o lukach Next.js](https://www.netlify.com/changelog/2026-11-03-nextjs-security-vulnerabilities/), zaktualizowany 4 listopada, wymienia cztery z siedmiu jako dotyczące stron na Netlify i wydaje adapter `@netlify/plugin-nextjs` 5.16.6 na przypadek ciasteczek w Middleware.

### Jak sprawdzić, czy twoja aplikacja używa podatnych wzorców

Z katalogu głównego projektu te polecenia znajdą konfiguracje z tabeli:

```bash
npx next --version                                      # poniżej 16.4.5 lub 15.5.29: aktualizuj
grep -rn "cacheComponents\|partialPrefetching" next.config.*
grep -rln "next/root-params" app src lib 2>/dev/null    # root params w kodzie z cache
grep -rln "unstable_cache" app src lib 2>/dev/null      # razem z "use cache": GHSA-mfr8
grep -rln "runtime = \"edge\"" app src pages 2>/dev/null # trasy Edge: szukaj cookies.set()
```

Przy ciasteczkach w Edge wyślij żądanie do trasy, która ustawia ciasteczko, i poszukaj wewnętrznego nagłówka w odpowiedzi. Po aktualizacji [commit z poprawką](https://github.com/vercel/next.js/commit/809be725f) usuwa go z odpowiedzi Edge:

```bash
curl -s -D - -o /dev/null https://your-app.example/api/login | grep -i x-middleware-set-cookie
```

## Które wersje Next.js dostają poprawkę?

Tylko dwie linie LTS. [Polityka wsparcia Next.js](https://nextjs.org/support-policy) stawia 16.x w Active LTS, a 15.x w Maintenance LTS z aktualizacjami bezpieczeństwa do 31 stycznia 2027; 14.x i starsze nie są wspierane. W npm 3 listopada nie pojawiło się żadne wydanie 16.2.x ani 16.3.x: najnowsze to wciąż 16.2.12 (25 lipca) i 16.3.8 (30 września).

- **Od 16.0 do 16.4.4:** przejdź na 16.4.5. Nie ma backportu dla 16.2 ani 16.3, więc razem z łatką dostajesz aktualizację wersji minor. Przed przejściem przeczytaj [noty wydania 16.4.4](https://github.com/vercel/next.js/releases/tag/v16.4.4) i zmiany w 16.4.
- **Od 15.0 do 15.5.28:** przejdź na 15.5.29. Luki w cache nie dotyczą 15.x.
- **14.x i starsze:** advisory o wstrzykiwaniu odpowiedzi ma w polu wersji jednocześnie `>= 16.0.0` i `< 16.0.0`, co czytamy jako każdą wersję, a najnowsze 14.x w npm to wciąż 14.2.35 z grudnia 2025. Pozostałe sześć nie wymienia żadnej wersji poniżej 15.0.0. Advisory nie podaje obejścia, a 14.x nie dostaje łatki, więc wyjściem jest 15.5.29 albo 16.4.5.
Pola z wersjami w samych advisories czytaj ostrożnie. 4 listopada większość z nich nie podawała żadnej wersji z poprawką. Advisory o zagnieżdżonym `use cache` wskazywało 16.4.2, czemu przeczą noty wydania 16.4.5, a trzy podawały 16.4.2 jako ostatnią podatną wersję, choć 16.4.3 i 16.4.4 nie mają żadnej poprawki bezpieczeństwa. Żadnego z siedmiu nie było jeszcze w globalnej GitHub Advisory Database (jej API zwracało 404 dla każdego), a [Dependabot alarmuje tylko o advisories zweryfikowanych przez GitHuba](https://docs.github.com/en/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-the-github-advisory-database). Brak alertu Dependabota nie znaczy więc dziś, że masz łatkę. Kieruj się notami wydania: 16.4.5 i 15.5.29.

## Jak zaktualizować Next.js do 16.4.5 lub 15.5.29

**1. Sprawdź, którą wersję masz.**
    Uruchom `npx next --version` albo `npm ls next`. W monorepo sprawdź każdą aplikację: każda, która rozwiązuje się do wersji poniżej 16.4.5 na 16.x albo poniżej 15.5.29 na 15.x, wymaga aktualizacji.

**2. Zainstaluj wersję z poprawkami.**
    Uruchom `npm install next@16.4.5` na 16.x albo `npm install next@15.5.29` na 15.x (`pnpm add` i `yarn add` działają tak samo). Node.js i zakres peer dla Reacta się nie zmieniają, więc `react` i `react-dom` zostają bez zmian.

**3. Sprawdź, co rozwiązał lockfile.**
    Uruchom ponownie `npm ls next` i wdrażaj z czystej instalacji. Zakres z daszkiem, np. `^16.4.4` w `package.json`, bierze 16.4.5 dopiero po aktualizacji lockfile.

**4. Wyczyść cache, który przeżywa deploy.**
    Wpisy zapisane przed poprawką zostają błędne także po niej: wyciek przez `unstable_cache` trwa, dopóki wpis nie zostanie zrewalidowany lub usunięty, a zatruta powłoka zachowuje swój błąd 404 po restartach. Advisories nie każą niczego czyścić; to nasza własna rada: jeśli używasz współdzielonego cache handlera albo trwałego wolumenu na cache, wyczyść go po aktualizacji. Na Netlify postępuj według jego changelogu: wyczyść branch deploys i Deploy Previews, których deploy produkcyjny nie czyści.

**5. Obejścia stosuj tylko, dopóki nie możesz zaktualizować.**
    Advisory o `unstable_cache` podaje, że niewywoływanie funkcji `use cache` wewnątrz `unstable_cache` jest pełnym obejściem. Obejście dla powłoki to `partialPrefetching: true` w `next.config`. Pozostałe pięć nie podaje żadnego, więc zaktualizuj, gdy tylko możesz.

## Na co uważać

- **16.4.4 nie ma łatki.** Ukazało się dzień wcześniej i to wydanie z poprawkami błędów. Zgłoszenie bezpieczeństwa zamykaj dopiero na 16.4.5 albo 15.5.29.
- **Komentarz przy instalacji mówi „16.5”.** We wpisie Next.js linia `npm install next@16.4.5` ma komentarz `# for 16.5`. Polecenie jest poprawne. 16.5 jest wciąż w canary (`16.5.0-canary.40` w npm 4 listopada), więc nie szukaj wydania 16.5.
- **Wpis o wydaniu nie linkuje advisory o powłoce.** Opisuje zatrucie współdzielonej powłoki bez linku. GHSA-vvgp-ww4w-46vf jest w notach wydania 16.4.5.
- **Brak doniesień o atakach.** Żadne ze źródeł nie wspomina o wykorzystaniu luk w praktyce ani o publicznym proof of concept. Advisories są publiczne od 3 listopada, więc to nie powód, by czekać.
- **Kiedy czytaliśmy źródła.** Wpisy Next.js, oba wydania na GitHubie, siedem advisories, rejestr npm, politykę wsparcia i changelog Netlify – wszystko 4 listopada 2026. Nie uruchamialiśmy 16.4.5 na demo i nie odtwarzaliśmy żadnej luki.

## Więcej informacji

- [November 2026 Security Release](https://nextjs.org/blog/november-2026-security-release): Wpis Next.js z 3 listopada 2026: siedem luk, ich ocena i polecenia instalacji.

- [Wydanie Next.js v16.4.5](https://github.com/vercel/next.js/releases/tag/v16.4.5): Noty wydania z siedmioma advisories, każde z linkiem.

- [Wydanie Next.js v15.5.29](https://github.com/vercel/next.js/releases/tag/v15.5.29): Wydanie Maintenance LTS z trzema advisories, które dotyczą 15.x.

- [Advisories bezpieczeństwa Next.js](https://github.com/vercel/next.js/security/advisories): Każde advisory z warunkami, wynikiem CVSS, CVE i obejściem, jeśli istnieje.

- [next w rejestrze npm](https://registry.npmjs.org/next): Każda wersja z datą publikacji, zależnościami i dist-tagami.

- [Polityka wsparcia Next.js](https://nextjs.org/support-policy): Które wersje główne dostają aktualizacje bezpieczeństwa i do kiedy.

- [Nowości web dev: RCE w React i Next.js, fast mode Opus 5.5](https://www.outofplace.space/pl/blog/nowosci-web-dev-2026-10-18): Nowości web dev z 11–18 października 2026: łatki React i Next.js na trzy krytyczne RCE, fast mode dla Claude Opus 5.5 bez preview i Python na Vercel w GA.
