Linux · Linux Kernel · CVE-2021-46921
**Nome do software vulnerável e versões afetadas**
Kernel do Linux (versões afetadas não especificadas)
**Descrição**
O problema está relacionado ao mecanismo de bloqueio no kernel do Linux, especificamente na função `queued write lock slowpath()`. Um leitor pode adquirir o bloqueio sem manter o wait lock, permitindo que as leituras observem valores de forma especulativa antes que o bloqueio de gravação seja realmente adquirido. Isso expõe uma janela para um problema A-B-A, em que uma alteração de valor pode ser vista pelo gravador antes que o leitor desbloqueie. O problema foi observado no epoll, onde o leitor realiza um xchg enquanto mantém o bloqueio de leitura, mas o gravador pode ver uma alteração de valor ocorrendo por baixo dele. As funções `atomic cond read acquire()` e `atomic cmpxchg relaxed()` estão envolvidas nessa questão. Mudar o cmpxchg para usar a semântica de aquisição resolve essa questão.
**Recomendações**
No momento, não há informações sobre uma versão mais recente que contenha uma correção para essa vulnerabilidade.