CVE and update status of the FreeBSD ports tree3,864 unaddressed CVEs in 671 portsAll times are CET
CVE details

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.

Score
8.2 high
Published
2026-06-24
Links
NVD · cve.org

Matched ports (1)

PortPackageVersionStatusMaintainer
devel/rubygem-concurrent-ruby11rubygem-concurrent-ruby111.1.10unaddressedsunpoet@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>