Podatność w mechanizmie wykonywania planów zapytań w Apollo Federation gateway umożliwia zatrucie Object.prototype (prototype pollution). Ze względu na krytyczny poziom CVSS 9.9 i możliwość wykorzystania przez zdalnego, uwierzytelnionego klienta bez interakcji użytkownika, stanowi poważne zagrożenie dla środowisk korzystających z tego rozwiązania.
▸ Pokaż oryginał (EN)
Apollo Federation is an architecture for declaratively composing APIs into a unified graph. Prior to 2.9.6, 2.10.5, 2.11.6, 2.12.3, and 2.13.2, a vulnerability exists in query plan execution within the gateway that may allow pollution of Object.prototype in certain scenarios. A malicious client may be able to pollute Object.prototype in gateway directly by crafting operations with field aliases and/or variable names that target prototype-inheritable properties. Alternatively, if a subgraph were to be compromised by a malicious actor, they may be able to pollute Object.prototype in gateway by crafting JSON response payloads that target prototype-inheritable properties. This vulnerability is fixed in 2.9.6, 2.10.5, 2.11.6, 2.12.3, and 2.13.2.
Złośliwy klient może doprowadzić do zatrucia Object.prototype bezpośrednio w gateway poprzez odpowiednio spreparowane operacje GraphQL zawierające aliasy pól lub nazwy zmiennych wskazujące na właściwości dziedziczone przez prototyp. Alternatywnie, jeśli jeden z podgrafów (subgraph) zostałby skompromitowany, atakujący mógłby zanieczyścić Object.prototype w gateway poprzez spreparowane odpowiedzi JSON zawierające klucze odwołujące się do właściwości dziedziczonych przez prototyp. Podatność sklasyfikowana jest jako CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes).
Atakujący może zmodyfikować globalne właściwości Object.prototype w środowisku uruchomieniowym gateway, co w zależności od kontekstu może prowadzić do nieautoryzowanego dostępu do danych, naruszenia integralności przetwarzanych żądań lub destabilizacji usługi. Zakres naruszenia obejmuje wysoki poziom poufności i integralności danych oraz umiarkowany wpływ na dostępność, przy czym podatność przekracza granicę komponentu (Scope: Changed).
Należy zaktualizować Apollo Federation do jednej z poprawionych wersji: 2.9.6, 2.10.5, 2.11.6, 2.12.3 lub 2.13.2. Szczegółowe informacje dostępne są w oficjalnym security advisory producenta pod adresem wskazanym w referencjach.
Apollo Federation w wersjach wcześniejszych niż 2.9.6, 2.10.5, 2.11.6, 2.12.3 oraz 2.13.2
Podatność może być wykorzystana zarówno przez zewnętrznego klienta (bez kompromitacji infrastruktury), jak i przez skompromitowany subgraph — co zwiększa powierzchnię ataku w środowiskach z wieloma subgrafami zarządzanymi przez różne zespoły lub podmioty.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L