Katalog CVE

CVE-2026-65628

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.14%

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

Streszczenie

Funkcja jose_jwk:shared_secret/2 (w Elixir jako JOSE.JWK.shared_secret/2) wyprowadza wspólny sekret ECDH z dwóch JWK. Jej pierwsza klauzula dopasowuje tylko, gdy oba JWK mają ten sam moduł typu klucza (kty), a klauzula zapasowa ponownie wywołuje siebie jako shared_secret(from(YourJWK), from(MyJWK)). Ponieważ from/1 zwraca już sparsowany rekord jose_jwk bez zmian, przekazanie dwóch JWK o różnych typach kluczy (np. klucza EC i RSA) powoduje, że klauzula zapasowa wchodzi ponownie z identycznymi argumentami, tworząc nieograniczoną pętlę rekurencyjną ogonową, która nigdy nie kończy się i nie powoduje awarii.

Ocena ryzyka

Aplikacja, która wyprowadza wspólny sekret z zewnętrznie dostarczonego klucza publicznego peera bez sprawdzenia zgodności typu i krzywej, może zostać wprowadzona w tę pętlę przez kontrolowany przez atakującego JWK, przypinając scheduler Erlanga na 100% CPU. Powtarzane żądania wyczerpują dostępne schedulery, powodując denial of service.

Rekomendacja

Zaktualizuj bibliotekę jose do wersji 1.11.13 lub nowszej. Przed wyprowadzeniem wspólnego sekretu sprawdzaj, czy typ klucza i krzywa peera są zgodne z kluczem lokalnym.

Inne podatności w jose

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

jose_jwk:shared_secret/2 (exposed in Elixir as JOSE.JWK.shared_secret/2) derives an ECDH shared secret from two JWKs. Its first function clause only matches when both JWKs carry the same key type (kty) module, and its fallback clause re-invokes itself as shared_secret(from(YourJWK), from(MyJWK)). Because from/1 returns an already-parsed jose_jwk record unchanged, passing two JWKs whose key types differ (for example an EC key and an RSA key) makes the fallback clause re-enter with identical arguments, producing an unbounded tail-recursive loop that never returns and never crashes. An application that derives a shared secret from an externally supplied peer public key without first checking that the peer key's type and curve match its own key can be driven into this loop by an attacker-controlled JWK, pinning an Erlang scheduler at 100% CPU. Repeated requests exhaust the available schedulers, resulting in a denial of service. This issue affects jose: from 1.5.0 before 1.11.13.

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