Description
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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| ruby-concurrency | concurrent-ruby | < 1.3.7 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | ruby-concurrent | 1.3.7-1 | — |
| Debian 13 | ruby-concurrent | No fix yet | — |
| Debian 12 | ruby-concurrent | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | ruby-concurrent | No fix yet | — |
| Ubuntu 26.04 LTS | ruby-concurrent | No fix yet | — |
| Ubuntu 25.10 | ruby-concurrent | No fix yet | — |
| Ubuntu 24.04 LTS | ruby-concurrent | No fix yet | — |
| Ubuntu 22.04 LTS | ruby-concurrent | No fix yet | — |
Show 3 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 20.04 LTS | ruby-concurrent | No fix yet | — |
| Ubuntu 18.04 LTS | ruby-concurrent | No fix yet | — |
| Ubuntu 16.04 LTS | ruby-concurrent | No fix yet | — |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | rubygem-concurrent-ruby | 1.3.7-1 | — |
Wolfi
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Wolfi rolling | cinc-auditor | 7.1.7-r7 | — |
| Wolfi rolling | kube-fluentd-operator | 1.18.2-r71 | — |
| Wolfi rolling | logstash-9.3 +1 | No fix yet | — |
| Wolfi rolling | logstash-9.4 +1 | 9.4.6-r0 | — |
| Wolfi rolling | ruby3.2-fluentd-kubernetes-daemonset-1.19-kinesis | 1.19.2.1.1-r5 | — |
| Wolfi rolling | ruby3.2-kube-logging-operator-fluentd-outputs +1 | 6.7.0-r5 | — |
| Wolfi rolling | ruby3.2-rails-8.1 | 8.1.3-r6 | — |
| Wolfi rolling | ruby3.3-fluentd-kubernetes-daemonset-1.19-kinesis +2 | 1.19.3.1.0-r0 | — |
| Wolfi rolling | ruby3.4-rails-8.1 | 8.1.3-r7 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| RubyGems | concurrent-ruby | < 1.3.7 | 1.3.7 | GHSA-wv3x-4vxv-whpp |