PT-2024-21614 · Linux+9 · Linux Kernel+9
CVSS v3.1
7.8
Alta
| Vetor | AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Nome do software vulnerável e versões afetadas
Versões do kernel Linux anteriores à 6.8.0-05205-g77fadd89fe2d-dirty #213
Descrição
O problema surge quando a ação mirred é usada em um qdisc de saída com classes e um pacote é espelhado ou redirecionado para si mesmo, resultando em um impasse de bloqueio do qdisc. Isso pode ser reproduzido usando comandos específicos do tc qdisc e do filtro em dispositivos como eth0 e eth1. O impasse ocorre devido a um possível cenário de bloqueio recursivo, no qual a tarefa tenta adquirir um bloqueio que já possui. Para corrigir isso, um campo de proprietário (ID da CPU) é adicionado à estrutura Qdisc após a entrada do qdisc raiz e, se o softirq entrar uma segunda vez com a mesma CPU do proprietário do qdisc, o pacote é descartado para quebrar o loop.
Recomendações
Para resolver este problema, atualize o kernel do Linux para uma versão que inclua a correção para o impasse de espelhamento na recursão de dispositivos. Especificamente, certifique-se de que a versão do kernel seja posterior à 6.8.0-05205-g77fadd89fe2d-dirty #213. Como solução alternativa temporária, considere evitar o uso da ação mirred no qdisc de saída com classes quando os pacotes forem espelhados ou redirecionados para si mesmos, ou aplique manualmente o patch que adiciona o campo owner à estrutura Qdisc caso a atualização do kernel não seja viável imediatamente.
Exploit
Correção
DoS
Improper Locking
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Alt Linux
Almalinux
Centos
Debian
Linuxmint
Linux Kernel
Red Hat
Rocky Linux
Suse
Ubuntu