Next.js łata krytyczne luki AVIF i Windows umożliwiające nieuwierzytelnione zdalne wykonanie kodu - Security Bez Tabu

Next.js łata krytyczne luki AVIF i Windows umożliwiające nieuwierzytelnione zdalne wykonanie kodu

Cybersecurity news

Wprowadzenie do problemu / definicja

Vercel opublikował poprawki bezpieczeństwa dla dwóch krytycznych podatności w frameworku Next.js, które w określonych warunkach mogą prowadzić do nieuwierzytelnionego zdalnego wykonania kodu. Problem dotyczy zarówno mechanizmu przetwarzania obrazów AVIF, jak i obsługi ścieżek w środowiskach opartych o system plików Windows.

Z perspektywy bezpieczeństwa aplikacji webowych jest to zdarzenie wysokiej wagi. Next.js należy do najczęściej wykorzystywanych frameworków w nowoczesnych projektach React, dlatego każda luka o potencjale RCE ma bezpośrednie znaczenie dla zespołów DevSecOps, administratorów oraz właścicieli środowisk self-hosted.

W skrócie

  • Dwie krytyczne luki w Next.js mogą prowadzić do zdalnego wykonania kodu bez uwierzytelnienia.
  • Pierwsza podatność dotyczy optymalizacji obrazów AVIF i łańcucha zależności obejmującego sharp oraz libheif.
  • Druga luka ma charakter path traversal i dotyczy wdrożeń działających na Windows.
  • Producent udostępnił poprawki w wersjach 15.5.24 oraz 16.3.3.
  • Środowiska self-hosted wymagają pilnej weryfikacji i aktualizacji.

Kontekst / historia

Znaczenie tej publikacji wynika nie tylko z popularności samego Next.js, ale również z charakteru współczesnych zagrożeń. Coraz częściej źródłem krytycznych podatności nie jest wyłącznie kod frameworka, lecz także jego zależności upstream. W tym przypadku szczególnie istotna jest luka związana z przetwarzaniem obrazów, ponieważ wykorzystuje typową funkcję aplikacji, a nie rzadki lub niestandardowy komponent.

Drugi problem pokazuje z kolei, że profil ryzyka może zależeć od platformy uruchomieniowej. Podatność specyficzna dla Windows oznacza, że sama znajomość wersji aplikacji nie wystarcza do oceny ekspozycji. Trzeba uwzględnić również system operacyjny, model hostingu oraz sposób konfiguracji routingu i cache.

Analiza techniczna

Pierwsza z luk dotyczy obsługi obrazów AVIF. Next.js korzysta z pakietu sharp do optymalizacji obrazów, a ten pośrednio wykorzystuje bibliotekę libheif do dekodowania plików AVIF. W podatnym scenariuszu wykryto błąd typu heap buffer overflow w mechanizmie skalowania obrazu.

Odpowiednio spreparowany plik AVIF może zawierać niespójne informacje dotyczące kanałów Alpha i ich głębi bitowej. W efekcie aplikacja może zaalokować bufor dla danych 8-bitowych, a następnie zapisać do niego dane 16-bitowe, co prowadzi do nadpisania pamięci poza granicami przydziału. Tego rodzaju uszkodzenie pamięci może stanowić podstawę do dalszej eksploatacji i osiągnięcia wykonania kodu na serwerze.

W praktyce ryzyko dotyczy wdrożeń, w których jawnie włączono obsługę AVIF w procesie optymalizacji obrazów. Producent zdecydował się wyłączyć optymalizację AVIF w poprawionych wydaniach do czasu pełnego wdrożenia bezpiecznej wersji zależności, ograniczając tym samym powierzchnię ataku.

Druga luka, oznaczona jako CVE-2026-75604, dotyczy środowisk opartych o Windows. Ma charakter path traversal i występuje w aplikacjach korzystających z Pages Router oraz App Router bez Cache Components, jeśli serwer działa na systemie plików Windows. W takim scenariuszu atakujący może manipulować ścieżkami w sposób prowadzący do nieautoryzowanego wykonania kodu lub dostępu do nieprzewidzianych zasobów procesu aplikacyjnego.

Kluczowym problemem jest brak skutecznego obejścia dla podatnych wdrożeń hostowanych na Windows. To oznacza, że jedyną realną metodą ograniczenia ryzyka pozostaje szybka aktualizacja do wersji naprawionej. Jednocześnie wdrożenia działające na Linuxie i macOS nie są objęte tym konkretnym scenariuszem.

Zakres podatnych wersji obejmuje różne linie rozwojowe frameworka. W przypadku luki windowsowej zagrożone są wersje od 13.4 do 15.5.23 oraz od 16.0 do 16.3.2. Z kolei problem AVIF obejmuje wersje od 10.0.0 do 15.5.23 oraz wszystkie wydania 16.x do 16.3.2, o ile obsługa AVIF była aktywna w konfiguracji.

Konsekwencje / ryzyko

Najpoważniejszą konsekwencją obu podatności jest możliwość przejęcia kontroli nad procesem aplikacji przez nieuwierzytelnionego atakującego. W środowisku produkcyjnym może to prowadzić do kompromitacji aplikacji webowej, wycieku danych, kradzieży sekretów środowiskowych, modyfikacji odpowiedzi HTTP, instalacji złośliwych komponentów oraz ruchu bocznego do innych usług.

Szczególnie wysokie ryzyko występuje w organizacjach, które utrzymują wdrożenia self-hosted na Windows, przetwarzają obrazy dostarczane przez użytkowników albo nie posiadają dojrzałego procesu szybkiego wdrażania poprawek bezpieczeństwa. Dodatkowym problemem jest fakt, że błędy pamięci są trudniejsze do wykrycia klasycznymi kontrolami bezpieczeństwa i często prowadzą do niestabilnych, ale bardzo niebezpiecznych skutków.

  • Możliwe przejęcie procesu aplikacji i wykonanie nieautoryzowanego kodu.
  • Ryzyko wycieku sekretów, tokenów i danych sesyjnych.
  • Potencjalna instalacja webshelli lub trwałych mechanizmów dostępu.
  • Zwiększone zagrożenie dla środowisk przetwarzających nieufne pliki AVIF.
  • Najwyższy priorytet dla wdrożeń self-hosted działających na Windows.

Rekomendacje

Organizacje korzystające z Next.js powinny niezwłocznie ustalić, czy ich środowiska działają na podatnych wersjach i czy spełniają warunki eksploatacji obu luk. Minimalnym działaniem naprawczym jest aktualizacja do wersji 15.5.24 lub 16.3.3, zależnie od używanej linii wydawniczej.

  • Przeprowadzić pełną inwentaryzację wszystkich aplikacji Next.js, w tym środowisk testowych i produkcyjnych.
  • Nadać najwyższy priorytet wdrożeniom self-hosted uruchamianym na Windows.
  • Sprawdzić konfigurację pod kątem aktywnej obsługi image/avif.
  • Tymczasowo ograniczyć przyjmowanie nieufnych plików AVIF, jeśli jest to możliwe operacyjnie.
  • Zweryfikować obecność sharp oraz zależności powiązanych w łańcuchu SBOM.
  • Uruchomić skanowanie SCA i walidację wersji w pipeline CI/CD.
  • Monitorować logi pod kątem błędów przetwarzania obrazów, awarii procesu Node.js i nietypowych żądań.
  • Ograniczyć uprawnienia procesu aplikacyjnego, aby zmniejszyć skutki ewentualnego RCE.

Zespoły bezpieczeństwa powinny również przygotować tymczasowe reguły detekcyjne. Warto analizować nietypowe żądania związane z optymalizacją obrazów, wzrost liczby błędów 500, nagłe restarty procesu aplikacyjnego oraz anomalie w ścieżkach dostępu w środowiskach Windows.

Podsumowanie

Najnowsze poprawki bezpieczeństwa dla Next.js pokazują dwa istotne kierunki współczesnych zagrożeń: krytyczne skutki błędów w zależnościach multimedialnych oraz ryzyka specyficzne dla platformy uruchomieniowej. Obie luki mogą prowadzić do nieuwierzytelnionego zdalnego wykonania kodu, dlatego wymagają natychmiastowej reakcji w ramach procesu patch management.

Dla organizacji utrzymujących aplikacje Next.js w modelu self-hosted kluczowe są szybka aktualizacja, przegląd konfiguracji AVIF, priorytetowe potraktowanie wdrożeń windowsowych oraz szersza rewizja procesu zarządzania zależnościami i monitorowania ryzyk w łańcuchu dostaw oprogramowania.

Źródła

  1. https://thehackernews.com/2026/08/nextjs-patches-critical-avif-and.html
  2. https://github.com/vercel/next.js/security
  3. https://vercel.com/changelog
  4. https://github.com/strukturag/libheif/security/advisories
  5. https://nextjs.org/blog