CRITICAL🇬🇧 English

CVE-2026-4599

Odtworzenie klucza prywatnego DSA przez błąd porównań w jsrsasign

CVSS 9.3v4.0pub. 2026-03-23upd. 2026-07-01

Biblioteka jsrsasign w wersjach od 7.0.0 do 11.1.1 (nieincluzywie) zawiera błąd niepełnego porównania zakresów liczb losowych, który pozwala atakującemu odtworzyć klucz prywatny. Podatność jest krytyczna, ponieważ nie wymaga uwierzytelnienia ani interakcji użytkownika i może prowadzić do pełnego kompromitowania klucza prywatnego DSA.

Pokaż oryginał (EN)

Versions of the package jsrsasign from 7.0.0 and before 11.1.1 are vulnerable to Incomplete Comparison with Missing Factors via the getRandomBigIntegerZeroToMax and getRandomBigIntegerMinToMax functions in src/crypto-1.1.js; an attacker can recover the private key by exploiting the incorrect compareTo checks that accept out-of-range candidates and thus bias DSA nonces during signature generation.

🤖 Analiza AI
Jak działa

Funkcje getRandomBigIntegerZeroToMax oraz getRandomBigIntegerMinToMax w pliku src/crypto-1.1.js stosują nieprawidłowe sprawdzenia metodą compareTo, które akceptują kandydatów spoza dozwolonego zakresu. Powoduje to systematyczne odchylenie (bias) losowych nonces wykorzystywanych podczas generowania podpisów DSA. Atakujący, obserwując wystarczającą liczbę podpisów, może statystycznie wyodrębnić wzorzec wynikający z tego odchylenia i przeprowadzić atak kryptograficzny pozwalający odtworzyć klucz prywatny.

Skutki

Atakujący może odtworzyć klucz prywatny DSA użyty do generowania podpisów cyfrowych, co prowadzi do całkowitego przejęcia tożsamości kryptograficznej ofiary — w tym możliwości fałszowania podpisów i podszywania się pod właściciela klucza.

Mitygacja

Należy zaktualizować pakiet jsrsasign do wersji 11.1.1 lub nowszej, w której poprawiono błędne sprawdzenia compareTo. Poprawka dostępna jest w commicie ee4b013478366cb16cea9a4bdfb218b6077f83b1 w repozytorium projektu na GitHub.

Kogo dotyczy

Pakiet jsrsasign (Jsrsasign Project) w wersjach od 7.0.0 włącznie do 11.1.1 (wyłącznie), korzystający z funkcjonalności podpisów DSA.

Uwagi

Podatność sklasyfikowana jako CWE-1023 (Incomplete Comparison with Missing Factors). Publicznie dostępne jest proof-of-concept w serwisie GitHub (gist autora Kr0emer). Dotyczy wyłącznie operacji DSA — inne algorytmy obsługiwane przez bibliotekę mogą nie być podatne.

CVSS Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
  • Kjur Jsrsasign

    APP
    Kjur
    7.0.0 – 11.1.1 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2021-30246CRITICAL9.1ten sam produkt

In the jsrsasign package through 10.1.13 for Node.js, some invalid RSA PKCS#1 v1.5 signatures are mistakenly r...

CVE-2020-14968CRITICAL9.8ten sam produkt

An issue was discovered in the jsrsasign package before 8.0.17 for Node.js. Its RSASSA-PSS (RSA-PSS) implement...

CVE-2020-14967CRITICAL9.8ten sam produkt

An issue was discovered in the jsrsasign package before 8.0.18 for Node.js. Its RSA PKCS1 v1.5 decryption impl...

CVE-2026-4598HIGH7.7ten sam produkt

Versions of the package jsrsasign before 11.1.1 are vulnerable to Infinite loop via the bnModInverse function ...

CVE-2026-4600HIGH8.1ten sam produkt

Versions of the package jsrsasign before 11.1.1 are vulnerable to Improper Verification of Cryptographic Signa...