Vulnerability in Ruby-Concurrency Concurrent-Ruby
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.
Published · last modified .
CVSS v3 metric
CVSS v3 base score 5.5 (Medium). Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N.
EPSS exploit prediction
EPSS: 0.002 (3.7th percentile), scored .
Very low probability of exploitation in the next 30 days; routine patching cadence is appropriate. 4th percentile — 3.7% of CVEs in the catalogue have a lower EPSS than this one. How to read EPSS.
EPSS over last 30 days · oldest: 0.002 · newest: 0.002 · change: 0.000
Affected products
- Ruby-Concurrency Concurrent-Ruby — versions < 1.3.7
- Rubyconcurrency Concurrent Ruby
Weakness classification (CWE)
References
- github.com/ruby-concurrency/concurrent-ruby/security/advisories/GHSA-wv3x-4vxv-… (Third Party Advisory)
Frequently asked questions
- What is CVE-2026-54905?
- CVE-2026-54905 is a medium-severity vulnerability in Ruby-Concurrency Concurrent-Ruby, classified under Wrap-around Error. CVSS score: 5.5/10. Published 2026-06-24.
- How severe is CVE-2026-54905?
- Medium severity. CVSS v3 base score is 5.5 out of 10.