PT-2024-30728 · Linux+6 · Linux Kernel+6
Frederic Weisbecker
+1
·
Publicado
2024-07-09
·
Atualizado
2025-09-29
·
CVE-2024-43870
CVSS v3.1
5.5
Média
| Vetor | AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Nome do software vulnerável e versões afetadas
Versões do kernel Linux anteriores à 6.6.50
Descrição
O problema surge quando uma tarefa é removida da fila de agendamento e as entregas pendentes de sigtrap são adiadas para a tarefa de destino ao retomar o espaço do usuário por meio do task work. Falhas ao adicionar o callback de um evento ao mecanismo task work são ignoradas, levando a uma pequena janela em que sigtraps pendentes podem ser enfileirados e ignorados, causando um vazamento na adição da contagem de referências do evento. Isso ocorre no seguinte cenário: quando uma tarefa é encerrada, a última chamada para a saída de eventos ocorre após o encerramento do task work, resultando no evento nunca ser liberado.
Os detalhes técnicos sobre a exploração incluem:
-
O tratamento de erros da função
task work add()é inadequado, levando ao vazamento. -
A variável
event->pending sigtrapé usada para rastrear entregas de sigtrap pendentes. -
A função
irq work queue()é usada para enfileirar o IRQ pendente. -
A função
perf event overflow()está envolvida no cenário em que o vazamento ocorre. -
A função
event sched out()é chamada quando a tarefa é agendada para saída. -
A função
perf pending irq()retorna antecipadamente quandoevent->oncpué -1.
Recomendações
Para resolver o problema, atualize o kernel do Linux para a versão 6.6.50 ou posterior, que inclui a correção para o vazamento de eventos ao sair. Como solução temporária, considere desativar a função
perf event overflow() até que um patch esteja disponível. Restrinja o acesso à função task work add() para minimizar o risco de exploraçãoExploit
Correção
Memory Leak
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Astra Linux
Linuxmint
Linux Kernel
Red Hat
Red Os
Suse
Ubuntu