CRITICAL🇬🇧 English

CVE-2015-9235

Pominięcie weryfikacji podpisu JWT w module jsonwebtoken (algorithm confusion)

CVSS 9.8v3.0pub. 2018-05-29upd. 2024-11-21

W module Node.js jsonwebtoken przed wersją 4.2.2 atakujący może ominąć weryfikację podpisu tokenu JWT. Podatność pozwala na sfałszowanie tokenu podpisanego algorytmem symetrycznym (HS*) w miejsce oczekiwanego algorytmu asymetrycznego (RS/ES), co prowadzi do pełnego przejęcia uwierzytelnienia.

Pokaż oryginał (EN)

In jsonwebtoken node module before 4.2.2 it is possible for an attacker to bypass verification when a token digitally signed with an asymmetric key (RS/ES family) of algorithms but instead the attacker send a token digitally signed with a symmetric algorithm (HS* family).

🤖 Analiza AI
Jak działa

Serwer jest skonfigurowany do weryfikacji tokenów JWT podpisanych algorytmem asymetrycznym (np. RS256 lub ES256) przy użyciu klucza publicznego. Atakujący tworzy własny token i podpisuje go algorytmem symetrycznym (np. HS256), używając jako tajnego klucza wartości klucza publicznego serwera. Podatna biblioteka nie sprawdza poprawnie, czy algorytm wskazany w nagłówku tokenu jest zgodny z oczekiwanym przez aplikację — akceptuje token podpisany algorytmem HS*, traktując klucz publiczny jako klucz symetryczny. W efekcie weryfikacja podpisu kończy się powodzeniem dla sfałszowanego tokenu.

Skutki

Atakujący może sfałszować dowolny token JWT bez znajomości klucza prywatnego, skutecznie podszywając się pod dowolnego użytkownika lub uzyskując nieautoryzowany dostęp do zasobów chronionych uwierzytelnieniem opartym na JWT.

Mitygacja

Należy zaktualizować moduł jsonwebtoken do wersji 4.2.2 lub nowszej. Poprawka dostępna w commicie 1bb584bc382295eeb7ee8c4452a673a77a68b687 w repozytorium GitHub auth0/node-jsonwebtoken. Aplikacje korzystające z weryfikacji tokenów JWT opartej na algorytmach asymetrycznych powinny jawnie wymuszać oczekiwany algorytm po stronie weryfikacji.

Kogo dotyczy

Auth0 jsonwebtoken (moduł Node.js) przed wersją 4.2.2

Uwagi

Podatność jest znana jako atak 'algorithm confusion' lub 'alg:none/HS* confusion' i była opisana publicznie przez badaczy w 2015 roku na blogu Auth0 oraz przez Tima McLeana. Pomimo daty publikacji CVE (2018-05-29), sam problem był znany i naprawiony już w 2015 roku.

CVSS Vector
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Auth0 Jsonwebtoken

    APP
    Auth0
    < 4.2.2
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2022-23539MEDIUM5.9ten sam produkt

Versions `<=8.5.1` of `jsonwebtoken` library could be misconfigured so that legacy, insecure key types are use...

CVE-2022-23540MEDIUM6.4ten sam produkt

In versions `<=8.5.1` of `jsonwebtoken` library, lack of algorithm definition in the `jwt.verify()` function c...

CVE-2022-23541MEDIUM5.0ten sam produkt

jsonwebtoken is an implementation of JSON Web Tokens. Versions `<= 8.5.1` of `jsonwebtoken` library can be mis...

CVE-2020-7947CRITICAL9.8PL ✓ten sam vendor

CSV injection w pluginie Login by Auth0 dla WordPress (przed 4.0.0)

CVE-2019-7644CRITICAL9.8PL ✓ten sam vendor

Auth0 WCF Service JWT — wyciek sygnatury tokenu w komunikacie błędu