PT-2026-51092 · Rubygems · Concurrent-Ruby

CVE-2026-54906

·

Published

2026-06-19

·

Updated

2026-07-21

CVSS v3.1

9.8

Critical

VectorAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Name of the Vulnerable Software and Affected Versions concurrent-ruby versions prior to 1.3.7
Description A synchronization correctness issue exists in the public Concurrent::ReadWriteLock API. The function release write lock() does not verify if the calling thread actually acquired the write lock, allowing any thread with access to the lock object to release a write lock held by another thread. This can lead to a situation where a second writer enters its critical section while the first writer is still active, breaking mutual exclusion and potentially causing data races.
Additionally, the function release read lock() decrements the shared counter even when no read lock is held. If called on a fresh lock, the counter changes from 0 to -1, which causes subsequent read acquisitions to fail by raising a Concurrent::ResourceLimitError (an error indicating that the system has reached its limit for reader threads), effectively resulting in a denial of service for that lock.
Recommendations Update to version 1.3.7. As a temporary workaround, restrict the use of the manual release write lock() and release read lock() functions to ensure they are only called by the threads that acquired the respective locks.

Exploit

Fix

Improper Locking

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

AZL-91287
CLEANSTART-2026-DE16221
CLEANSTART-2026-UT74115
CVE-2026-54906
GHSA-6WX8-W4F5-WWCR

Affected Products

Concurrent-Ruby