W bibliotece UglifyJS 3.13.2 wykryto podatność typu prototype pollution w funkcji DEFNODE w pliku ast.js, umożliwiającą manipulację prototypami obiektów JavaScript. Podatność otrzymała ocenę CVSS 9.8 (Critical), choć vendor kwestionuje jej zasadność.
▸ Pokaż oryginał (EN)
Prototype pollution vulnerability in function DEFNODE in ast.js in mishoo UglifyJS 3.13.2 via the name variable in ast.js. NOTE: the vendor considers this an invalid report.
Podatność polega na możliwości zanieczyszczenia prototypu (prototype pollution) poprzez zmienną 'name' w funkcji DEFNODE w pliku lib/ast.js. Atakujący może dostarczyć specjalnie spreparowane dane wejściowe, które modyfikują prototyp bazowych obiektów JavaScript (np. Object.prototype), wpływając tym samym na zachowanie całej aplikacji. Tego rodzaju atak może prowadzić do nieoczekiwanych zmian właściwości współdzielonych przez wszystkie obiekty w środowisku uruchomieniowym. Warto odnotować, że producent (vendor) uznał zgłoszenie za nieprawidłowe i nie wydał patcha.
Skuteczne wykorzystanie podatności może pozwolić atakującemu na zdalne wykonanie kodu (RCE), naruszenie integralności i poufności danych oraz potencjalny denial of service w aplikacjach korzystających z UglifyJS podczas przetwarzania niezaufanych danych wejściowych.
Vendor uznał zgłoszenie za nieprawidłowe i nie przewiduje wydania patcha dla tej podatności. Zaleca się ocenę rzeczywistego narażenia w kontekście własnego środowiska, unikanie przetwarzania niezaufanych danych wejściowych przez UglifyJS oraz rozważenie migracji do alternatywnych lub nowszych wersji biblioteki. Należy śledzić referencje producenta w celu weryfikacji ewentualnych aktualizacji stanowiska.
UglifyJS (projekt mishoo/UglifyJS) w wersji 3.13.2
Vendor (mishoo) oficjalnie zakwestionował zasadność tego zgłoszenia CVE, uznając je za invalid report (patrz: https://github.com/mishoo/UglifyJS/issues/5721#issuecomment-1292849604). Ocena CVSS 9.8 może być zawyżona w kontekście rzeczywistego wektora ataku w typowych środowiskach produkcyjnych.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HUglifyjs Project Uglifyjs
APPUglifyjs Project3.13.2