W wersjach Envoy wcześniejszych niż 1.22.1 filtr OAuth nie waliduje access tokenów, co pozwala atakującemu uzyskać dostęp do chronionych zasobów bez przejścia pełnego procesu uwierzytelnienia. Podatność otrzymała maksymalną ocenę CVSS 10.0, co czyni ją krytyczną dla wszystkich środowisk używających Envoy z filtrem OAuth.
▸ Pokaż oryginał (EN)
Envoy is a cloud-native high-performance proxy. In versions prior to 1.22.1 the OAuth filter implementation does not include a mechanism for validating access tokens, so by design when the HMAC signed cookie is missing a full authentication flow should be triggered. However, the current implementation assumes that access tokens are always validated thus allowing access in the presence of any access token attached to the request. Users are advised to upgrade. There is no known workaround for this issue.
Filtr OAuth w Envoy zakłada z założenia, że access tokeny dołączone do żądania zostały już zweryfikowane, mimo że w rzeczywistości brak jest mechanizmu ich walidacji. W sytuacji, gdy podpisany ciasteczkiem HMAC token jest nieobecny, powinien zostać uruchomiony pełny przepływ uwierzytelnienia — jednak implementacja omija ten krok, jeśli do żądania dołączony jest jakikolwiek access token. Atakujący może zatem dołączyć do żądania dowolny, nawet sfabrykowany access token i uzyskać dostęp do chronionych zasobów bez weryfikacji tożsamości.
Atakujący bez żadnych uprawnień i bez interakcji użytkownika może ominąć mechanizm uwierzytelnienia OAuth i uzyskać pełny dostęp do zasobów chronionych filtrem OAuth, co grozi ujawnieniem poufnych danych oraz możliwością modyfikacji zasobów (CWE-306: brak uwierzytelnienia dla funkcji krytycznych).
Należy pilnie zaktualizować Envoy do wersji 1.22.1 lub nowszej. Producent nie wskazuje żadnego obejścia (workaround) — aktualizacja jest jedynym rozwiązaniem.
Envoyproxy Envoy we wszystkich wersjach wcześniejszych niż 1.22.1 z włączonym filtrem OAuth.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:NEnvoyproxy Envoy
APPEnvoyproxy< 1.22.1
Powiązane podatności
Bypass mechanizmów kontroli dostępu przez białe znaki w nagłówkach HTTP w Envoy
Envoy 1.12.0: zapis poza buforami żądania HTTP/2 prowadzący do RCE lub bypass ACL
The HTTP/2 protocol allows a denial of service (server resource consumption) because request cancellation can ...
Envoy Proxy: NULL pointer dereference powodujący crash przy braku nagłówka hosta
Envoy Proxy: stack overflow przy głęboko zagnieżdżonych obiektach JSON