CVE-2026-86043
WysokieCVSS 7.5Streszczenie
Skipper to router HTTP i odwrotny serwer proxy do kompozycji usług. Przed wersją 0.27.37 filtr opaAuthorizeRequestWithBody może autoryzować zbyt duże żądanie po tym, jak Skipper obcina treść prezentowaną Open Policy Agent, ponieważ sygnał input.truncated_body jest wyprowadzany z Content-Length, a nie z rzeczywistego wyniku odczytu. W filters/openpolicyagent/openpolicyagent.go, ExtractHttpBodyOptionally obcina treści do maxBodyBytes, podczas gdy filters/openpolicyagent/internal/envoy/skipperadapter.go kopiuje nagłówki żądania bez dodawania wartości Content-Length odzwierciedlającej obcięcie. Dla żądania HTTP/1.1 używającego Transfer-Encoding: chunked lub żądania HTTP/2 bez Content-Length, polityka sprawdzająca treść, która stosuje wcześniejszą łagodzenie i zezwala na input.truncated_body równe false, może ocenić tylko obcięty prefiks, zezwolić na żądanie, a następnie przekazać pełne zbyt duże treści do chronionego upstreamu. Ten problem rezydualny jest odrębny od CVE-2026-50197. Problem został naprawiony w wersji 0.27.37.
Ocena ryzyka
Atakujący może ominąć kontrolę treści i wysłać zbyt duże żądanie do chronionych usług, co może prowadzić do nieautoryzowanego dostępu lub przeciążenia systemu.
Rekomendacja
Zaleca się natychmiastową aktualizację Skipper do wersji 0.27.37 lub nowszej, aby wyeliminować tę podatność.
Inne podatności w Skipper
Zobacz wszystkie- CVE-2022-27262Krytyczne
Podatność na dowolne przesyłanie plików w module przesyłania plików Skipper v0.9.1 umożliwia atakującym wykonanie dowolnego kodu za pomocą spreparowanego pliku.
- CVE-2026-65838Wysokie
Skipper przed wersją 0.27.35 ma podatność w filtrze opaAuthorizeRequestWithBody, która pozwala na obejście polityki Rego typu deny-on-presence dla żądań z dużym deklarowanym Content-Length, gdy treść przekracza limit rozmiaru.
- CVE-2026-54247Średnie
W Skipper przed wersją 0.26.22 Handler w dataclients/kubernetes/admission/admission.go przekazuje ciało żądań do punktu końcowego admission Kubernetes pod :9443/admission bezpośrednio do io.ReadAll(r.Body) bez limitu rozmiaru. Atakujący z dostępem sieciowym w klastrze i ważnym certyfikatem klienta Kubernetes może wysłać bardzo duże ciało żądania, powodując nieograniczoną alokację pamięci i zakończenie procesu Skipper z powodu braku pamięci.
- CVE-2026-54246Średnie
Skipper przed wersją 0.27.13 udostępnia dane sterujące całego klastra przez /routes, /routes/{zone}, /swarm/redis/shards i /swarm/valkey/shards bez uwierzytelniania na poziomie aplikacji. Obsługiwane procedury tylko ograniczają metody HTTP, ale nie weryfikują tożsamości wywołującego. Zaatakowany lub skompromitowany pod może ominąć ograniczenia RBAC i odczytać wrażliwe dane z różnych przestrzeni nazw.
- CVE-2026-65604Wysokie
Skipper zawiera niekompletną poprawkę dla CVE-2026-50197, w której zbyt duże ciała żądań omijają polityki Open Policy Agent (OPA) typu deny-on-presence. Gdy rozmiar ciała żądania przekracza limit maxBodyBytes, Skipper przekazuje pełny ładunek do usługi nadrzędnej, podczas gdy OPA ocenia pusty parsed_body, co pozwala na wykonanie zabronionych działań.
- CVE-2026-50197Wysokie
Podatność w Skipper (HTTP router i reverse proxy) przed wersją 0.26.10 umożliwia ominięcie inspekcji treści żądań HTTP/1.1 z Transfer-Encoding: chunked oraz HTTP/2 bez nagłówka content-length przez integrację z OpenPolicyAgent. Atakujący może przesłać złośliwe dane, które nie są analizowane przez filtr, ale docierają do usługi docelowej.
Oryginalny opis (angielski, źródło NVD)
Skipper is an HTTP router and reverse proxy for service composition. Prior to version 0.27.37, the opaAuthorizeRequestWithBody filter can authorize an oversized request after Skipper truncates the body presented to Open Policy Agent because the input.truncated_body signal is derived from Content-Length rather than the actual read result. In filters/openpolicyagent/openpolicyagent.go, ExtractHttpBodyOptionally truncates bodies at maxBodyBytes, while filters/openpolicyagent/internal/envoy/skipperadapter.go copies the request headers without adding a Content-Length value that reflects the truncation. For an HTTP/1.1 request using Transfer-Encoding: chunked or an HTTP/2 request without Content-Length, a body-inspecting policy that follows the prior mitigation and permits input.truncated_body equal to false can evaluate only the truncated prefix, allow the request, and then forward the full oversized body to the protected upstream. This residual issue is distinct from CVE-2026-50197. This issue is fixed in version 0.27.37.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

