CVE-2026-54904
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.
Matched ports (1)
| Port | Package | Version | Status | Maintainer |
|---|---|---|---|---|
| devel/rubygem-concurrent-ruby11 | rubygem-concurrent-ruby11 | 1.1.10 | unaddressed | sunpoet@FreeBSD.org |
Template for a VuXML entry
Range taken from the CVE record, check it before committing. make newentry in security/vuxml creates the vid.
<vuln vid="FIXME (make newentry)">
<topic>FIXME -- FIXME</topic>
<affects>
<package>
<name>rubygem-concurrent-ruby11</name>
<range><lt>1.3.7</lt></range>
</package>
</affects>
<description>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>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.</p>
</body>
</description>
<references>
<cvename>CVE-2026-54904</cvename>
<url>https://nvd.nist.gov/vuln/detail/CVE-2026-54904</url>
</references>
<dates>
<discovery>2026-06-24</discovery>
<entry>2026-10-26</entry>
</dates>
</vuln>