CVE-2026-54904

High

Description

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.

SeverityHigh
CVSS7.5
Exploit probability—
ProductRubyconcurrency Concurrent Ruby
PublishedJun 24, 2026
First seenJun 24, 2026
Weakness typeCWE-835CWE-835

How to fix

Update
  • rubyconcurrency concurrent_ruby1.3.7 or later

Affected products

ProductAffected versionsFixed in
rubyconcurrency concurrent_rubyv < 1.3.71.3.7

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.

CVE-2026-54904 · Rubyconcurrency Concurrent Ruby · Dark Radar