Błąd w obsłudze błędnych odpowiedzi na żądania upgrade w kube-apiserver pozwala nieuwierzytelnionemu atakującemu nawiązać połączenie przez API server bezpośrednio do serwerów backend. Połączenie to jest uwierzytelniane poświadczeniami TLS samego kube-apiserver, co oznacza pełne pominięcie mechanizmów autoryzacji klastra.
▸ Pokaż oryginał (EN)
In all Kubernetes versions prior to v1.10.11, v1.11.5, and v1.12.3, incorrect handling of error responses to proxied upgrade requests in the kube-apiserver allowed specially crafted requests to establish a connection through the Kubernetes API server to backend servers, then send arbitrary requests over the same connection directly to the backend, authenticated with the Kubernetes API server's TLS credentials used to establish the backend connection.
Kubernetes API server pełni rolę pośrednika (proxy) dla żądań upgrade (np. WebSocket). Gdy backend zwraca błędną odpowiedź na takie żądanie, kube-apiserver nieprawidłowo obsługuje ten błąd i pozostawia otwarte połączenie. Atakujący może następnie wysyłać przez to połączenie dowolne żądania bezpośrednio do backendu, a żądania te są przesyłane z poświadczeniami TLS kube-apiserver używanymi do nawiązania połączenia z backendem. W efekcie atakujący uzyskuje dostęp z poziomem zaufania równym temu, jaki posiada sam API server.
Atakujący bez żadnego uwierzytelnienia może wykonywać dowolne operacje na serwerach backend klastra Kubernetes z uprawnieniami kube-apiserver, co w praktyce oznacza pełne przejęcie kontroli nad klastrem (RCE, odczyt i modyfikacja danych, privilege escalation).
Należy zaktualizować Kubernetes do wersji v1.10.11, v1.11.5 lub v1.12.3 (odpowiednio do używanej gałęzi). Należy zastosować patche dostępne u producenta zgodnie z referencjami.
Wszystkie wersje Kubernetes wcześniejsze niż v1.10.11, v1.11.5 oraz v1.12.3
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HKubernetes
APPKubernetes1.9.121.0.0 – 1.9.111.10.0 – 1.10.101.11.0 – 1.11.41.12.0 – 1.12.2Netapp Trident
APPNetappwszystkie wersjeRed Hat OpenShift Container Platform
APPRedhat3.103.113.23.33.43.53.63.8
Powiązane podatności
RCE w Kibana Timelion — wykonanie kodu z uprawnieniami procesu
Jenkins Script Security Plugin — sandbox bypass umożliwiający RCE
Jenkins Pipeline Groovy Plugin — bypass sandbox i wykonanie kodu (RCE)
RCE w Jenkins — nieuprawnione wywołanie metod przez Stapler framework
Esri Portal for ArcGIS – brak uwierzytelnienia dla krytycznej funkcji API