CVE-2026-54906

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.
Configurations

Configuration 1 (hide)

cpe:2.3:a:rubyconcurrency:concurrent_ruby:*:*:*:*:*:ruby:*:*

History

25 Oct 2026, 22:10

Type Values Removed Values Added
Summary
  • (es) concurrent-ruby es un conjunto de herramientas de concurrencia modernas para Ruby. Antes de la versión 1.3.7, Concurrent::ReadWriteLock#release_write_lock no verifica que el hilo llamador haya adquirido el bloqueo de escritura. Cualquier hilo con acceso al objeto de bloqueo puede liberar un bloqueo de escritura activo mantenido por otro hilo. Un segundo escritor puede entonces entrar en su sección crítica mientras el primer escritor aún se está ejecutando. Concurrent::ReadWriteLock#release_read_lock también decrementa el contador compartido incluso cuando no se mantiene ningún bloqueo de lectura. Llamarlo en un bloqueo nuevo cambia el contador de 0 a -1, después de lo cual la adquisición normal de lectura lanza Concurrent::ResourceLimitError. Esto es un problema de corrección de sincronización en la API pública de Concurrent::ReadWriteLock. Esta vulnerabilidad se corrige en la versión 1.3.7.

Information

Published : 2026-06-24 17:17

Updated : 2026-10-25 22:10


NVD link : CVE-2026-54906

Mitre link : CVE-2026-54906

CVE.ORG link : CVE-2026-54906


JSON object : View

Products Affected

rubyconcurrency

  • concurrent_ruby
CWE
CWE-414

Missing Lock Check

CWE-667

Improper Locking