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.
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::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>