CVE-2026-54906
concurrent-ruby jest nowoczesnym narzędziem do programowania wielowątkowego w Ruby. Przed wersją 1.3.7 metoda Concurrent::ReadWriteLock#release_write_lock nie weryfikuje, czy wątek wywołujący rzeczywiście posiada write lock. Dowolny wątek mający dostęp do obiektu lock może zwolnić aktywny write lock utrzymywany przez inny wątek, umożliwiając drugiemu writerowi wejście do sekcji krytycznej podczas gdy pierwszy writer jeszcze działa. Ponadto Concurrent::ReadWriteLock#release_read_lock zmniejsza licznik współdzielony nawet gdy żaden read lock nie jest utrzymywany — wywołanie go na świeżym lock zmienia licznik z 0 na -1, po czym normalne pozyskanie read lock zgłasza Concurrent::ResourceLimitError. Jest to problem poprawności synchronizacji w publicznym API Concurrent::ReadWriteLock. Podatność została naprawiona w wersji 1.3.7.
pub. 2026-06-24