Katalog CVE

CVE-2026-54904

WysokieCVSS 7.5
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.28%

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

Streszczenie

Podatność w bibliotece concurrent-ruby dla języka Ruby powoduje, że metoda AtomicReference#update może wejść w nieskończoną pętlę ponawiania, gdy przechowywana wartość to Float::NAN. Wynika to z faktu, że porównanie Float::NAN == Float::NAN zawsze zwraca fałsz, co uniemożliwia pomyślne wykonanie operacji compare_and_set.

Ocena ryzyka

Atakujący może doprowadzić do wyczerpania zasobów CPU lub trwałego zawieszenia żądań w usługach przechowujących wartości numeryczne pochodzące z zewnątrz w AtomicReference, co skutkuje odmową usługi (DoS).

Rekomendacja

Należy niezwłocznie zaktualizować bibliotekę concurrent-ruby do wersji 1.3.7 lub nowszej, która zawiera poprawkę eliminującą tę podatność.

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

concurrent-ruby is a modern concurrency tools for Ruby. Prior to 1.3.7, Concurrent::AtomicReference#update can enter a permanent busy retry loop when the current value is Float::NAN. The issue is caused by the interaction between AtomicReference#update, which retries until compare_and_set(old_value, new_value) succeeds; Numeric compare_and_set, which checks old == old_value before attempting the underlying atomic swap.; and Ruby NaN semantics, where Float::NAN == Float::NAN is always false. As a result, once an AtomicReference contains Float::NAN, calling #update repeatedly evaluates the caller's block and never returns. In services that store externally derived numeric values in an AtomicReference, this can cause CPU exhaustion or permanent request/job hangs. This vulnerability is fixed in 1.3.7.

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