CVE-2026-54905
concurrent-ruby: `ReentrantReadWriteLock` read-count overflow grants a write lock without exclusivity
CVSS 3.1Low
2.0/ 10.0
Опубликовано
Обновлено
В атаках
Не зафиксировано
Публичный PoC
Отсутствует
Анализ подготовлен:CVE Futuretools Threat Intelligence
Верификация: MITRE CVE List · CISA KEV · NIST NVD
ПАТЧ ДОСТУПЕН: ВЕРСИЯ 1.3.7
Обновить gem concurrent-ruby до версии 1.3.7 или новее.
01 // ТЕХНИЧЕСКАЯ СУТЬ УЯЗВИМОСТИ
Переполнение счетчика блокировок чтения в concurrent-ruby нарушает эксклюзивность блокировки записи. Несколько потоков могут параллельно модифицировать разделяемые данные.
02 // АНАТОМИЯ АТАКИ И ДЕФЕКТ ЛОГИКИ
Класс Concurrent::ReentrantReadWriteLock хранит локальные счетчики чтения и записи потока в одном integer. Младшие 15 бит отведены под счетчик чтения, а 15-й бит — под флаг WRITE_LOCK_HELD. При 32 768 повторных захватах на чтение счетчик переполняется в 15-й бит; try_write_lock считает поток владельцем записи и возвращает true без выставления глобального RUNNING_WRITER.
03 // СИСТЕМНЫЕ ПОСЛЕДСТВИЯ
Нарушение гарантии взаимного исключения (mutual exclusion): поток выполняет запись одновременно с активными операциями чтения других потоков, вызывая состояние гонки и повреждение данных.
04 // МАТРИЦА ЗАТРОНУТЫХ ПАКЕТОВ
ruby-concurrencyconcurrent-ruby
все ранние➔Fix: 1.3.7
——
>= 0➔Fix: 1.3.7
05 // ПЕРВОИСТОЧНИКИ И БЮЛЛЕТЕНИ (1)
06 // ЦИТИРОВАНИЕ ДАННЫХ И ИСТОЧНИК
Для включения аналитической карточки в отчёты по безопасности, матрицы рисков или исследовательские публикации используйте стандартизированный формат цитирования:
Библиографическая ссылка (Plain text)
CVE Futuretools (2026). Анализ уязвимости CVE-2026-54905: concurrent-ruby: `ReentrantReadWriteLock` read-count overflow grants a write lock without exclusivity. URL: https://cve.futuretools.ru/cve/CVE-2026-54905
BibTeX формат (LaTeX)
@misc{cve_futuretools_cve_2026_54905,
title = {{CVE-2026-54905: concurrent-ruby: `ReentrantReadWriteLock` read-count overflow grants a write lock without exclusivity}},
author = {{CVE Futuretools}},
year = {2026},
howpublished = {\url{https://cve.futuretools.ru/cve/CVE-2026-54905}},
note = {Оперативный инженерный анализ киберугроз}
}