PT-2026-36467 · Linux · Linux Kernel
Publicado
2026-03-09
·
Atualizado
2026-05-26
·
CVE-2026-43050
CVSS v2.0
7.7
Alta
| Vetor | AV:A/AC:L/Au:S/C:C/I:C/A:C |
Nome do Software Vulnerável e Versões Afetadas
Linux kernel (versões afetadas não especificadas)
Descrição
Existe uma condição de corrida no kernel Linux entre a função
lec atm close() definindo priv->lecd como NULL e o acesso concorrente a priv->lecd dentro das funções send to lecd(), lec handle bridge() e lec atm send(). Isso ocorre porque a lec atm close() limpa o priv->lecd sem sincronização, enquanto outros chamadores o desreferenciam sem proteção contra a desmontagem concorrente. Consequentemente, se o socket for liberado via RCU enquanto outra thread ainda o estiver utilizando, ocorre um use-after-free na função sock def readable() ao acessar a fila de espera do socket.Recomendações
Converta
priv->lecd para um ponteiro protegido por RCU, marcando-o como rcu em lec.h e utilizando rcu assign pointer() em lec atm close() e lecd attach().
Utilize rcu access pointer() para verificações de NULL em lec start xmit(), lec push(), send to lecd() e lecd attach().
Implemente rcu read lock(), rcu dereference() e rcu read unlock() em send to lecd(), lec handle bridge() e lec atm send() para acessar o lecd com segurança.
Aplique rcu assign pointer() seguido de synchronize rcu() em lec atm close() para garantir que todos os leitores tenham terminado antes de prosseguir.Correção
Use After Free
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Linux Kernel