Biblioteka @fastify/aws-lambda 6.4.0 umożliwia nieuwierzytelnionemu atakującemu sfałszowanie całego kontekstu zdarzenia AWS Lambda poprzez manipulację nagłówkami HTTP kontrolowanymi przez klienta. Podatność prowadzi do pełnego ominięcia mechanizmów uwierzytelniania i autoryzacji oraz privilege escalation w aplikacjach korzystających z request.awsLambda.event do podejmowania decyzji o dostępie.
▸ Pokaż oryginał (EN)
@fastify/aws-lambda version 6.4.0 decorates each Fastify request with request.awsLambda.event and request.awsLambda.context, values that applications are documented to use for authorization decisions such as reading API Gateway authorizer claims. In the default configuration, the getter that populates this decoration reads the client-controlled x-apigateway-event and x-apigateway-context HTTP headers before falling back to the trusted internal request token, and those reserved headers are not stripped from the incoming event. An unauthenticated attacker who can set a single HTTP header can therefore forge the entire Lambda proxy event, including the authorizer context, and override the genuine one. This results in a full authentication and authorization bypass and privilege escalation for any application that trusts request.awsLambda.event for identity or access control. Only version 6.4.0 is affected. Patches: upgrade to @fastify/aws-lambda 6.4.1, which resolves the decoration only through the internal per-invocation token and strips the reserved headers before the request is processed.
W wersji 6.4.0 mechanizm dekorowania żądań Fastify odczytuje nagłówki HTTP x-apigateway-event oraz x-apigateway-context — które są kontrolowane przez klienta — zanim sięgnie po zaufany wewnętrzny token per-invocation. Zarezerwowane nagłówki nie są przy tym usuwane z przychodzącego zdarzenia przed jego przetworzeniem. Atakujący może zatem, ustawiając pojedynczy nagłówek HTTP, podmienić cały obiekt zdarzenia Lambda proxy, włącznie z kontekstem autoryzatora API Gateway (np. claimami JWT). Aplikacja odczytując request.awsLambda.event otrzymuje sfałszowane dane zamiast zaufanych wartości przekazanych przez środowisko Lambda.
Atakujący bez żadnych poświadczeń może podszyć się pod dowolnego użytkownika lub rolę, uzyskując nieautoryzowany dostęp do zasobów chronionych autoryzacją API Gateway. Skutkuje to pełnym authentication bypass, authorization bypass oraz privilege escalation w każdej aplikacji opierającej decyzje o dostępie na wartości request.awsLambda.event.
Należy niezwłocznie zaktualizować @fastify/aws-lambda do wersji 6.4.1, która rozwiązuje dekorację wyłącznie przez wewnętrzny token per-invocation i usuwa zarezerwowane nagłówki przed przetworzeniem żądania. Jako środek tymczasowy, jeśli aktualizacja nie jest natychmiast możliwa, należy rozważyć blokowanie nagłówków x-apigateway-event i x-apigateway-context na poziomie API Gateway lub infrastruktury przed usługą.
Wyłącznie @fastify/aws-lambda w wersji 6.4.0. Wcześniejsze oraz późniejsze wersje nie są podatne.
Podatność dotyczy wyłącznie wersji 6.4.0 — co jest informacją wprost zawartą w opisie. Patch dostępny w wersji 6.4.1. Identyfikator GitHub Security Advisory: GHSA-m93c-jj3f-68ph.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NFastify Fastify\/aws Lambda
APPFastify6.4.0
Powiązane podatności
Pominięcie rewrite prefiksu URL w @fastify/http-proxy – dostęp do ukrytych zasobów
Fastify/Middie: pominięcie middleware przez zakodowany slash w URL
Pominięcie middleware w @fastify/express — obejście uwierzytelniania
Pominięcie uwierzytelnienia w @fastify/middie — brak dziedziczenia middleware
Pominięcie middleware security w @fastify/express — bypass uwierzytelniania