CVE-2026-54906: CWE-414: Missing Lock Check in ruby-concurrency concurrent-ruby
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.
AI Analysis
Technical Summary
The vulnerability in concurrent-ruby (CVE-2026-54906) affects the Concurrent::ReadWriteLock class prior to version 1.3.7. The release_write_lock method lacks a check to confirm that the calling thread actually holds the write lock, enabling a thread to release a write lock held by another thread. This can lead to multiple writers entering their critical sections concurrently, violating synchronization guarantees. Furthermore, the release_read_lock method improperly decrements the read lock counter even when no read lock is held, potentially causing the counter to become negative and triggering Concurrent::ResourceLimitError on subsequent read lock attempts. These issues represent synchronization correctness flaws in the public API. The vulnerability is resolved in version 1.3.7.
Potential Impact
The vulnerability can cause synchronization errors in applications using concurrent-ruby's read-write locks. Specifically, it allows a thread to release a write lock held by another thread, potentially leading to concurrent execution of critical sections that should be mutually exclusive. The decrementing of the read lock counter below zero can cause resource limit errors, disrupting normal lock acquisition. The CVSS score is low (2.1), indicating limited impact and complexity of exploitation.
Mitigation Recommendations
Upgrade concurrent-ruby to version 1.3.7 or later, where this vulnerability is fixed. No other mitigation is indicated or necessary as the fix is available in the official release.
CVE-2026-54906: CWE-414: Missing Lock Check in ruby-concurrency concurrent-ruby
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.
CVSS v4.0
Score 2.1low
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in concurrent-ruby (CVE-2026-54906) affects the Concurrent::ReadWriteLock class prior to version 1.3.7. The release_write_lock method lacks a check to confirm that the calling thread actually holds the write lock, enabling a thread to release a write lock held by another thread. This can lead to multiple writers entering their critical sections concurrently, violating synchronization guarantees. Furthermore, the release_read_lock method improperly decrements the read lock counter even when no read lock is held, potentially causing the counter to become negative and triggering Concurrent::ResourceLimitError on subsequent read lock attempts. These issues represent synchronization correctness flaws in the public API. The vulnerability is resolved in version 1.3.7.
Potential Impact
The vulnerability can cause synchronization errors in applications using concurrent-ruby's read-write locks. Specifically, it allows a thread to release a write lock held by another thread, potentially leading to concurrent execution of critical sections that should be mutually exclusive. The decrementing of the read lock counter below zero can cause resource limit errors, disrupting normal lock acquisition. The CVSS score is low (2.1), indicating limited impact and complexity of exploitation.
Mitigation Recommendations
Upgrade concurrent-ruby to version 1.3.7 or later, where this vulnerability is fixed. No other mitigation is indicated or necessary as the fix is available in the official release.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-06-16T13:49:33.556Z
- Cvss Version
- 4.0
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a3c04afeed863c81e18d76c
Added to database: 06/24/2026, 16:24:15 UTC
Last enriched: 06/24/2026, 16:39:15 UTC
Last updated: 06/24/2026, 16:54:21 UTC
Views: 3
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.