PT-2026-51092 · Rubygems · Concurrent-Ruby
CVE-2026-54906
·
Publicado
2026-06-19
·
Atualizado
2026-07-21
CVSS v3.1
9.8
Crítica
| Vetor | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
Nome do Software Vulnerável e Versões Afetadas
concurrent-ruby versões anteriores a 1.3.7
Descrição
Um problema de correção de sincronização existe na API pública
Concurrent::ReadWriteLock. A função release write lock() não verifica se a thread chamadora realmente adquiriu o bloqueio de escrita, permitindo que qualquer thread com acesso ao objeto de bloqueio libere um bloqueio de escrita mantido por outra thread. Isso pode levar a uma situação em que um segundo escritor entra em sua seção crítica enquanto o primeiro escritor ainda está ativo, quebrando a exclusão mútua e potencialmente causando condições de corrida de dados.Além disso, a função
release read lock() decrementa o contador compartilhado mesmo quando nenhum bloqueio de leitura é mantido. Se chamada em um bloqueio novo, o contador muda de 0 para -1, o que faz com que aquisições de leitura subsequentes falhem ao lançar um Concurrent::ResourceLimitError (um erro indicando que o sistema atingiu seu limite de threads de leitura), resultando efetivamente em uma negação de serviço para aquele bloqueio.Recomendações
Atualize para a versão 1.3.7.
Como medida paliativa temporária, restrinja o uso das funções manuais
release write lock() e release read lock() para garantir que sejam chamadas apenas pelas threads que adquiriram os respectivos bloqueios.Exploit
Correção
Improper Locking
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Concurrent-Ruby