Peter Zijlstra

Pesquisador deIntel
#17361de 53,634
15.5CVSS total
Vulnerabilidades · 2
Média
1
Alta
1
PT-2024-30728
5.5
2024-07-09
Linux · Linux Kernel · CVE-2024-43870
**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 quando `event->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ção