Biblioteka jsrsasign przed wersją 8.0.17 dla Node.js nieprawidłowo weryfikuje podpisy RSASSA-PSS, akceptując zmodyfikowane podpisy z prefiksem bajtów '\0' jako prawidłowe. Umożliwia to atakującemu fałszowanie podpisów cyfrowych oraz potencjalne wywołanie uszkodzenia pamięci.
▸ Pokaż oryginał (EN)
An issue was discovered in the jsrsasign package before 8.0.17 for Node.js. Its RSASSA-PSS (RSA-PSS) implementation does not detect signature manipulation/modification by prepending '\0' bytes to a signature (it accepts these modified signatures as valid). An attacker can abuse this behavior in an application by creating multiple valid signatures where only one signature should exist. Also, an attacker might prepend these bytes with the goal of triggering memory corruption issues.
Implementacja algorytmu RSASSA-PSS (RSA-PSS) w bibliotece jsrsasign nie wykrywa manipulacji podpisem polegającej na poprzedzeniu go jednym lub wieloma bajtami o wartości '\0'. Zmodyfikowany w ten sposób podpis jest przez bibliotekę akceptowany jako prawidłowy. Atakujący może wykorzystać tę lukę do tworzenia wielu pozornie poprawnych podpisów w miejscach, gdzie powinien istnieć tylko jeden unikalny podpis. Dodatkowo, dołączanie takich bajtów może potencjalnie prowadzić do problemów z uszkodzeniem pamięci (memory corruption) w podatnej aplikacji — co klasyfikuje podatność jako CWE-119 (improper restriction of operations within bounds of a memory buffer).
Atakujący może ominąć mechanizmy weryfikacji podpisu cyfrowego, tworząc wielokrotne fałszywe podpisy akceptowane jako prawidłowe, a w określonych warunkach może również wywołać uszkodzenie pamięci prowadzące do wykonania arbitralnego kodu (RCE).
Należy zaktualizować bibliotekę jsrsasign do wersji 8.0.17 lub nowszej (dostępna również wersja 8.0.18). Użytkownicy produktów NetApp MAX Data powinni zapoznać się z poradnikiem bezpieczeństwa NetApp (ntap-20200724-0001) i zastosować wskazane tam poprawki.
Pakiet jsrsasign (Kjur) w wersjach przed 8.0.17 dla Node.js; produkty NetApp MAX Data korzystające z tej biblioteki.
Podatność została zgłoszona jako issue #438 w repozytorium GitHub projektu jsrsasign. Poprawka została wydana w wersji 8.0.17, a następnie w 8.0.18.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HKjur Jsrsasign
APPKjur< 8.0.17Netapp Max Data
APPNetappwszystkie wersje
Powiązane podatności
Odtworzenie klucza prywatnego DSA przez błąd porównań w jsrsasign
Błędna weryfikacja podpisów RSA PKCS#1 v1.5 w jsrsasign
Python 3.8.4 – ignorowanie ograniczeń sys.path z pliku python38._pth
Błąd weryfikacji szyfrogramu RSA PKCS1 v1.5 w bibliotece jsrsasign
Versions of the package jsrsasign before 11.1.1 are vulnerable to Infinite loop via the bnModInverse function ...