CRITICAL🇬🇧 English

CVE-2022-31053

Biscuit-Auth: fałszowanie tokenów uwierzytelniających przez błąd algorytmu podpisów

CVSS 9.8v3.1pub. 2022-06-13upd. 2024-11-21

Specyfikacja Biscuit w wersji 1 zawiera podatny algorytm Γ-podpisów (gamma signatures), który umożliwia atakującemu sfałszowanie poprawnych tokenów uwierzytelniających. Podatność jest krytyczna, ponieważ pozwala na uzyskanie dowolnego poziomu dostępu bez posiadania prawidłowych poświadczeń.

Pokaż oryginał (EN)

Biscuit is an authentication and authorization token for microservices architectures. The Biscuit specification version 1 contains a vulnerable algorithm that allows malicious actors to forge valid Γ-signatures. Such an attack would allow an attacker to create a token with any access level. The version 2 of the specification mandates a different algorithm than gamma signatures and as such is not affected by this vulnerability. The Biscuit implementations in Rust, Haskell, Go, Java and Javascript all have published versions following the v2 specification. There are no known workarounds for this issue.

🤖 Analiza AI
Jak działa

Implementacje biblioteki Biscuit oparte na specyfikacji v1 stosują algorytm Γ-podpisów (gamma signatures), który zawiera kryptograficzną słabość opisaną w literaturze akademickiej. Atakujący może wykorzystać ten błąd (CWE-347: Improper Verification of Cryptographic Signature) do wygenerowania tokenu, którego podpis zostanie uznany za poprawny przez serwer weryfikujący. W efekcie możliwe jest skonstruowanie tokenu przyznającego dowolne uprawnienia bez znajomości klucza prywatnego. Specyfikacja v2 zastępuje ten algorytm innym, który nie jest podatny na ten atak.

Skutki

Atakujący może sfałszować token uwierzytelniający z dowolnym poziomem dostępu, co prowadzi do całkowitego obejścia mechanizmów uwierzytelniania i autoryzacji w infrastrukturze mikroserwisów korzystającej z biblioteki Biscuit.

Mitygacja

Należy zaktualizować używane biblioteki Biscuit do wersji zgodnych ze specyfikacją v2, które są dostępne dla wszystkich wymienionych implementacji (Rust, Haskell, Go, Java, JavaScript). Nie istnieją znane obejścia (workarounds) dla tej podatności — migracja do specyfikacji v2 jest jedynym skutecznym środkiem zaradczym. Szczegóły dostępne w referencjach producenta.

Kogo dotyczy

Biscuitsec Biscuit-Auth, Biscuitsec Biscuit-Go, Biscuitsec Biscuit-Haskell oraz Clever-Cloud Biscuit-Java — wszystkie implementacje oparte na specyfikacji Biscuit w wersji 1. Implementacje w językach Rust, Haskell, Go, Java i JavaScript zgodne ze specyfikacją v2 nie są podatne.

Uwagi

Podatność jest zakorzeniona w kryptograficznej słabości algorytmu Γ-podpisów opisanej w pracy akademickiej dostępnej pod adresem https://eprint.iacr.org/2020/1484. Atak wymaga jedynie dostępu sieciowego bez uwierzytelnienia (AV:N/AC:L/PR:N/UI:N), co potwierdza wysoki poziom zagrożenia.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Biscuitsec Biscuit Auth

    APP
    Biscuitsec
    1.0.0 – 1.1.0
  • Biscuitsec Biscuit Go

    APP
    Biscuitsec
    < 2.0.0
  • Biscuitsec Biscuit Haskell

    APP
    Biscuitsec
    0.1.1.0
  • Clever Cloud Biscuit Java

    APP
    Clever-Cloud
    < 2.0.0
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2024-41949LOW3.0ten sam produkt

biscuit-rust to implementacja Rust biblioteki Biscuit, tokenu uwierzytelniającego i autoryzującego dla archite...

CVE-2024-41948LOW3.0ten sam vendor

biscuit-java to implementacja w Javie systemu Biscuit, tokenu uwierzytelniania i autoryzacji dla architektur m...