PT-2026-51092
CVE-2026-54906
·
Publicado
2026-06-19
·
Atualizado
2026-09-18
Descrição por
CVSS 3.1
9.8
CríticaMétricasAV: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.Explorabilidade
Exploit
Correção
Impactos
Fornecedores
Produtos afetados
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾