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

CVE-2026-54905

concurrent-ruby is a modern concurrency tools for Ruby. Prior to 1.3.7, Concurrent::ReentrantReadWriteLock can incorrectly grant a write lock after one thread acquires the read lock 32,768 times. The lock stores a thread's local read and write hold counts in one integer. The low 15 bits are used for the read hold count, and bit 15 is used as WRITE_LOCK_HELD. After 32,768 reentrant read acquisitions, the local read count crosses into the write-lock bit. try_write_lock then treats the thread as already holding a write lock and returns true without setting the global RUNNING_WRITER bit. This breaks the core mutual-exclusion guarantee: the caller is told it has a write lock, but other threads can still hold or acquire read locks at the same time. This vulnerability is fixed in 1.3.7.

Score
2.0 low
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::ReentrantReadWriteLock can incorrectly grant a
	write lock after one thread acquires the read lock 32,768 times. The
	lock stores a thread's local read and write hold counts in one
	integer. The low 15 bits are used for the read hold count, and bit 15
	is used as WRITE_LOCK_HELD. After 32,768 reentrant read acquisitions,
	the local read count crosses into the write-lock bit. try_write_lock
	then treats the thread as already holding a write lock and returns
	true without setting the global RUNNING_WRITER bit. This breaks the
	core mutual-exclusion guarantee: the caller is told it has a write
	lock, but other threads can still hold or acquire read locks at the
	same time. This vulnerability is fixed in 1.3.7.</p>
      </body>
    </description>
    <references>
      <cvename>CVE-2026-54905</cvename>
      <url>https://nvd.nist.gov/vuln/detail/CVE-2026-54905</url>
    </references>
    <dates>
      <discovery>2026-06-24</discovery>
      <entry>2026-10-26</entry>
    </dates>
  </vuln>