PT-2026-51091 · Rubygems · Concurrent-Ruby
CVE-2026-54905
·
Publicado
2026-06-19
·
Atualizado
2026-07-21
CVSS v3.1
5.5
Média
| Vetor | AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N |
Nome do Software Vulnerável e Versões Afetadas
concurrent-ruby versões anteriores a 1.3.7
Description
O Concurrent::ReentrantReadWriteLock pode conceder incorretamente um bloqueio de gravação (write lock) após uma única thread adquirir o bloqueio de leitura (read lock) 32.768 vezes. O bloqueio gerencia as contagens locais de retenção de leitura e gravação de uma thread em um único número inteiro, usando os 15 bits inferiores para a contagem de retenção de leitura e o bit 15 como
WRITE LOCK HELD. Quando a contagem de aquisição de leitura atinge 32.768, a contagem transborda para o bit de bloqueio de gravação. Consequentemente, a função try write lock() trata a thread como se ela já possuísse um bloqueio de gravação e retorna verdadeiro sem definir o bit global RUNNING WRITER. Essa falha quebra a garantia de exclusão mútua, permitindo que uma thread acredite ter acesso exclusivo de gravação enquanto outras threads continuam a deter ou adquirir bloqueios de leitura, podendo levar a condições de corrida e leituras inconsistentes de estados mutáveis protegidos.Recommendations
Atualize para a versão 1.3.7.
Exploit
Correção
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Concurrent-Ruby