| Name | CVE-2026-54906 |
| Description | concurrent-ruby is a modern concurrency tools for Ruby. Prior to 1.3.7, Concurrent::ReadWriteLock#release_write_lock does not verify that the calling thread acquired the write lock. Any thread with access to the lock object can release an active write lock held by another thread. A second writer can then enter its critical section while the first writer is still running. Concurrent::ReadWriteLock#release_read_lock also decrements the shared counter even when no read lock is held. Calling it on a fresh lock changes the counter from 0 to -1, after which normal read acquisition raises Concurrent::ResourceLimitError. This is a synchronization correctness issue in the public Concurrent::ReadWriteLock API. This vulnerability is fixed in 1.3.7. |
| Source | CVE (at NVD; CERT, ENISA, LWN, oss-sec, fulldisc, Debian ELTS, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
Vulnerable and fixed packages
The table below lists information on source packages.
| Source Package | Release | Version | Status |
|---|
| ruby-concurrent (PTS) | bullseye | 1.1.6+dfsg-3 | vulnerable |
| bookworm | 1.1.6+dfsg-5 | vulnerable |
| trixie | 1.3.5-1 | vulnerable |
| forky, sid | 1.3.8-1 | fixed |
The information below is based on the following data on fixed versions.
| Package | Type | Release | Fixed Version | Urgency | Origin | Debian Bugs |
|---|
| ruby-concurrent | source | (unstable) | 1.3.7-1 | | | |
Notes
[trixie] - ruby-concurrent <no-dsa> (Minor issue)
[bookworm] - ruby-concurrent <postponed> (Minor issue; requires an application to release a ReadWriteLock it does not hold via the manual acquire_*/release_* API, and the upstream fix changes release_read_lock/release_write_lock to raise IllegalOperationError)
[bullseye] - ruby-concurrent <postponed> (Minor issue; requires an application to release a ReadWriteLock it does not hold via the manual acquire_*/release_* API, and the upstream fix changes release_read_lock/release_write_lock to raise IllegalOperationError)
https://github.com/ruby-concurrency/concurrent-ruby/security/advisories/GHSA-6wx8-w4f5-wwcr