Pakiet node-forge w wersjach przed 0.10.0 jest podatny na atak Prototype Pollution za pośrednictwem funkcji util.setPath. Podatność otrzymała ocenę krytyczną CVSS 9.8, ponieważ może być wykorzystana zdalnie bez uwierzytelnienia.
▸ Pokaż oryginał (EN)
The package node-forge before 0.10.0 is vulnerable to Prototype Pollution via the util.setPath function. Note: Version 0.10.0 is a breaking change removing the vulnerable functions.
Atak Prototype Pollution polega na manipulacji właściwościami prototypu obiektu JavaScript (np. Object.prototype) poprzez specjalnie spreparowane dane wejściowe. Funkcja util.setPath w podatnych wersjach node-forge nie przeprowadza wystarczającej walidacji kluczy przekazywanych przez użytkownika, co pozwala atakującemu na wstrzyknięcie lub nadpisanie właściwości dziedziczonych przez wszystkie obiekty w aplikacji. Może to prowadzić do zmiany zachowania aplikacji w sposób niezamierzony przez programistę.
Atakujący może zmodyfikować globalny prototyp obiektów JavaScript, co w zależności od kontekstu aplikacji może prowadzić do ujawnienia poufnych danych, naruszenia integralności działania aplikacji lub doprowadzenia do jej niedostępności (denial of service), a w skrajnych przypadkach do zdalnego wykonania kodu (RCE).
Należy zaktualizować pakiet node-forge do wersji 0.10.0 lub nowszej. Uwaga: wersja 0.10.0 jest zmianą przełomową (breaking change) — podatne funkcje zostały z niej całkowicie usunięte. Przed aktualizacją należy zweryfikować kompatybilność aplikacji z nowym API.
Pakiet node-forge (Digitalbazaar Forge) we wszystkich wersjach przed 0.10.0.
Wersja 0.10.0 stanowi breaking change — podatne funkcje (w tym util.setPath) zostały usunięte, a nie tylko poprawione. Administratorzy powinni uwzględnić testy regresji przed wdrożeniem aktualizacji.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDigitalbazaar Forge
APPDigitalbazaar< 0.10.0
Powiązane podatności
Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. Prior t...
Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. Prior t...
Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. Prior t...
Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. Prior t...
Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. An Unco...