CVE-2020-14966
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 62 - wyżej niż 62% wszystkich znanych CVE
Streszczenie
W pakiecie jsrsasign do wersji 8.0.18 dla Node.js odkryto problem, który pozwala na modyfikację podpisów ECDSA. Problem wynika z braku sprawdzania przepełnień długości sekwencji oraz znaków '0' dodawanych na początku lub końcu liczby, co skutkuje tym, że zmodyfikowane podpisy są weryfikowane jako ważne.
Ocena ryzyka
Organizacje mogą być narażone na ryzyko, jeśli aplikacje polegają na pojedynczym kanonicznym podpisie, co może prowadzić do nieautoryzowanego dostępu lub manipulacji danymi.
Rekomendacja
Zaleca się aktualizację pakietu jsrsasign do najnowszej wersji, aby usunąć tę podatność oraz wdrożenie dodatkowych mechanizmów weryfikacji podpisów.
Inne podatności w jsrsasign
Zobacz wszystkie- CVE-2026-4599Krytyczne
Biblioteka jsrsasign w wersjach od 7.0.0 do 11.1.0 zawiera podatność niepełnego porównania w funkcjach getRandomBigIntegerZeroToMax i getRandomBigIntegerMinToMax. Atakujący może odzyskać klucz prywatny poprzez wykorzystanie błędnych sprawdzeń compareTo, które akceptują kandydatów spoza zakresu, co powoduje obciążenie nonce DSA podczas generowania podpisu.
- CVE-2021-30246Krytyczne
W pakiecie jsrsasign w wersjach do 10.1.13 dla Node.js, niektóre nieprawidłowe podpisy RSA PKCS#1 v1.5 są błędnie uznawane za ważne. Nie ma znanego praktycznego ataku wykorzystującego tę podatność.
- CVE-2026-4603Średnie
Wersje pakietu jsrsasign przed 11.1.1 są podatne na błąd dzielenia przez zero, co może prowadzić do nieprawidłowego działania operacji z kluczem publicznym RSA. Atakujący może wymusić, aby operacje te zwracały z góry określone zera, ukrywając błędy związane z 'nieprawidłowym kluczem'.
- CVE-2026-4602Wysokie
Podatność w bibliotece jsrsasign przed wersją 11.1.1 wynika z nieprawidłowej konwersji między typami liczbowymi podczas obsługi ujemnych wykładników w pliku ext/jsbn2.js. Atakujący może wymusić obliczenie nieprawidłowych odwrotności modularnych i złamać weryfikację podpisu, wywołując funkcję modPow z ujemnym wykładnikiem.
- CVE-2026-4601Wysokie
Biblioteka jsrsasign przed wersją 11.1.1 zawiera podatność polegającą na braku kroku kryptograficznego w implementacji podpisu DSA. Atakujący może odzyskać klucz prywatny, wymuszając wygenerowanie nieprawidłowego podpisu, gdy r lub s wynosi zero, bez ponawiania próby.
- CVE-2026-4600Wysokie
Biblioteka jsrsasign przed wersją 11.1.1 zawiera podatność polegającą na nieprawidłowej weryfikacji podpisów kryptograficznych DSA. Atakujący może sfałszować podpis DSA lub certyfikat X.509, który zostanie zaakceptowany przez funkcję X509.verifySignature(), poprzez dostarczenie złośliwych parametrów domeny (np. g=1, y=1, r=1).
- CVE-2026-4598Wysokie
Podatność w bibliotece jsrsasign przed wersją 11.1.1 powoduje nieskończoną pętlę w funkcji bnModInverse w pliku ext/jsbn2.js. Atakujący może trwale zawiesić proces, przekazując do metody BigInteger.modInverse wartości zero lub ujemne.
- CVE-2024-21484Wysokie
Wersje pakietu jsrsasign przed 11.0.0 są podatne na niezgodność obserwowalną w procesie deszyfrowania RSA PKCS1.5 lub RSAOAEP. Atakujący może deszyfrować szyfrogramy, wykorzystując lukę w zabezpieczeniach Marvin.
- CVE-2022-25898Wysokie
Pakiet jsrsasign w wersjach przed 10.5.25 jest podatny na niewłaściwą weryfikację podpisu kryptograficznego, co może prowadzić do błędnej walidacji podpisów JWS lub JWT zawierających nieprawidłowe znaki kodowania Base64URL.
Oryginalny opis (angielski, źródło NVD)
An issue was discovered in the jsrsasign package through 8.0.18 for Node.js. It allows a malleability in ECDSA signatures by not checking overflows in the length of a sequence and '0' characters appended or prepended to an integer. The modified signatures are verified as valid. This could have a security-relevant impact if an application relied on a single canonical signature.

