Biblioteka defaults-deep w wersjach do 0.2.4 włącznie zawiera podatność typu prototype pollution, umożliwiającą atakującemu wstrzyknięcie dowolnych właściwości na obiekt Object.prototype. Jest to podatność krytyczna, ponieważ może prowadzić do przejęcia kontroli nad aplikacją bez konieczności uwierzytelnienia.
▸ Pokaż oryginał (EN)
A prototype pollution vulnerability was found in defaults-deep <=0.2.4 that would allow a malicious user to inject properties onto Object.prototype.
Prototype pollution polega na możliwości modyfikacji prototypu bazowego obiektu JavaScript (Object.prototype) poprzez spreparowane dane wejściowe. Biblioteka defaults-deep nieprawidłowo przetwarza zagnieżdżone właściwości obiektów, co pozwala atakującemu na przekazanie ładunku zawierającego klucz __proto__ lub podobny. W efekcie wstrzyknięte właściwości są dziedziczone przez wszystkie obiekty w aplikacji, co może prowadzić do nieoczekiwanych i niebezpiecznych zachowań kodu.
Atakujący może zmodyfikować globalne właściwości obiektów JavaScript w obrębie całej aplikacji, co może prowadzić do wykonania dowolnego kodu (RCE), ominięcia mechanizmów autoryzacji lub wywołania odmowy usługi (DoS).
Należy zaktualizować bibliotekę defaults-deep do wersji wyższej niż 0.2.4. Zaleca się weryfikację zależności projektu przy użyciu narzędzi takich jak npm audit oraz zastosowanie patchy dostępnych u producenta zgodnie z referencjami.
Biblioteka defaults-deep (projekt Defaults-Deep Project) w wersjach 0.2.4 i wcześniejszych.
Szczegóły podatności zostały ujawnione w raporcie HackerOne #380878.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDefaults Deep Project Defaults Deep
APPDefaults-Deep Project≤ 0.2.4