Biblioteki depath v1.0.6 oraz cool-path v1.1.2 autorstwa janryWang zawierają podatność typu prototype pollution w metodzie set(). Podatność pozwala atakującemu na zdalne wykonanie kodu (RCE) lub wywołanie odmowy usługi (DoS) bez żadnego uwierzytelnienia.
▸ Pokaż oryginał (EN)
janryWang products depath v1.0.6 and cool-path v1.1.2 were discovered to contain a prototype pollution via the set() method at setIn (lib/index.js:90). This vulnerability allows attackers to execute arbitrary code or cause a Denial of Service (DoS) via injecting arbitrary properties.
Podatność tkwi w funkcji setIn() zlokalizowanej w pliku lib/index.js (linia 90), wywoływanej przez metodę set(). Atakujący może przekazać specjalnie spreparowane właściwości obiektu (np. __proto__, constructor lub prototype), które modyfikują prototyp bazowego obiektu JavaScript. Zanieczyszczenie prototypu (prototype pollution) powoduje, że właściwości wstrzyknięte przez atakującego są dziedziczone przez wszystkie obiekty w aplikacji, co może prowadzić do wykonania dowolnego kodu lub zakłócenia działania aplikacji.
Atakujący może zdalnie wykonać dowolny kod na serwerze (RCE) lub spowodować niedostępność usługi (DoS). Możliwa jest pełna kompromitacja poufności, integralności i dostępności systemu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Jako obejście można rozważyć odrzucanie lub sanityzację danych wejściowych zawierających klucze takie jak __proto__, constructor czy prototype przed przekazaniem ich do metody set().
janryWang depath v1.0.6 oraz cool-path v1.1.2
Szczegółowy proof-of-concept podatności został opublikowany przez użytkownika mestrtee w serwisie GitHub Gist (referencja dostępna w opisie CVE).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HJanrywang Depath
APPJanrywang1.0.61.1.2