Katalog CVE

CVE-2026-65625

ŚrednieCVSS 5.9
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.12%

Percentyl 2 - wyżej niż 2% wszystkich znanych CVE

Streszczenie

Czysto-erlangowy fallback AES-GCM w jose_jwa_aes wyprowadza liczbę weryfikowanych bitów znacznika uwierzytelniania z samego znacznika dostarczonego przez atakującego. W klauzuli {aes_gcm, Bits} funkcji block_decrypt/4 przychodzący znacznik jest sprawdzany tylko przez is_binary/1, bez kontroli długości. Weryfikacja w gcm_block_decrypt/6 oblicza TBits = bit_size(T) i porównuje tylko te bity rzeczywistego 128-bitowego znacznika. Atakujący kontrolujący token JWE może skrócić znacznik uwierzytelniania do zaledwie 8 bitów, więc sprawdzane jest tylko 8 bitów, co zmniejsza odporność na fałszowanie z 2^-128 do 2^-8.

Ocena ryzyka

Sfałszowany szyfrogram jest niezawodnie akceptowany jako autentyczny w ciągu 256 prób bez znajomości klucza (fałszowanie znacznika uwierzytelniania i obejście integralności). Dostarczenie znacznika dłuższego niż 128 bitów powoduje badmatch i awarię procesu odszyfrowującego. Fallback jest osiągany przez publiczną ścieżkę odszyfrowywania JWE, gdy AES-GCM nie jest dostarczany przez natywny NIF crypto, np. w buildach FIPS, stripped lub starszych OTP.

Rekomendacja

Zaktualizuj bibliotekę jose do wersji 1.11.13 lub nowszej. Upewnij się, że środowisko udostępnia natywną implementację AES-GCM przez NIF crypto, aby uniknąć podatnego fallbacku.

Inne podatności w jose

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

The pure-Erlang AES-GCM fallback in jose_jwa_aes derives the number of verified authentication tag bits from the attacker-supplied tag itself. In the {aes_gcm, Bits} clause of block_decrypt/4, the incoming tag is guarded only by is_binary/1, with no check on its length. Verification in gcm_block_decrypt/6 then computes TBits = bit_size(T) and compares only those bits of the real 128-bit tag. An attacker who controls a JWE token can truncate the authentication tag to as little as 8 bits, so only 8 bits are ever checked. This reduces forgery resistance from 2^-128 to 2^-8, and a forged ciphertext is reliably accepted as authentic within 256 attempts without knowledge of the key (an authentication tag forgery and integrity bypass). Supplying a tag longer than 128 bits instead causes a badmatch that crashes the decrypting process. The fallback is reached through the public JWE decryption path whenever AES-GCM is not provided by a native crypto NIF, for example on FIPS or stripped or older OTP builds. This issue affects jose: from 1.2.0 before 1.11.13.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS