{"id":"CVE-2026-54904","aliases":["GHSA-h8w8-99g7-qmvj"],"url":"https://o3.security/vulnerability/CVE-2026-54904","summary":"concurrent-ruby:  `AtomicReference#update` livelocks when the stored value is `Float::NAN`","details":"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.","published":"2026-06-24T15:44:21.992Z","modified":"2026-08-07T03:45:32.625593341Z","cvss":null,"epss":null,"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"RubyGems","name":"concurrent-ruby","fixedVersion":"1.3.7"}],"fix":{"url":"https://github.com/ruby-concurrency/concurrent-ruby/commit/6e37e0644b83b182971dc540d2e4bee38df61386","label":"ruby-concurrency/concurrent-ruby@6e37e06"},"references":[{"type":"WEB","url":"https://github.com/ruby-concurrency/concurrent-ruby/releases/tag/v1.3.7"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54904.json"},{"type":"ADVISORY","url":"https://github.com/ruby-concurrency/concurrent-ruby/security/advisories/GHSA-h8w8-99g7-qmvj"},{"type":"ADVISORY","url":"https://github.com/rubysec/ruby-advisory-db/blob/master/gems/concurrent-ruby/CVE-2026-54904.yml"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-54904"},{"type":"FIX","url":"https://github.com/ruby-concurrency/concurrent-ruby/commit/6e37e0644b83b182971dc540d2e4bee38df61386"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-08-07T03:45:32.625593341Z"}}