PT-2021-8223 · Linux+7 · Linux Kernel+7
Syzbot
·
Publicado
2021-09-14
·
Atualizado
2026-03-14
·
CVE-2021-47582
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 à 5.14.0-rc7-syzkaller
Descrição
O problema está relacionado ao núcleo USB no kernel do Linux, onde a função
usb start wait urb() contém uma espera ininterrupta com um valor de tempo limite especificado pelo usuário. Se o valor do tempo limite for muito grande e o dispositivo acessado não responder em um intervalo de tempo razoável, o kernel exibirá a mensagem “Tarefa X bloqueada por mais de N segundos”. Esse problema pode ser corrigido substituindo as chamadas do usbfs para usb control msg() e usb bulk msg() por um código de propósito específico que sempre use uma espera cancelável e utilize GFP KERNEL em vez de GFP NOIO.Recomendações
Para resolver o problema, atualize o kernel do Linux para uma versão que inclua o patch para este problema. Especificamente, o patch substitui as chamadas do usbfs para
usb control msg() e usb bulk msg() por código de propósito específico que faz essencialmente a mesma coisa, exceto que sempre usa uma espera cancelável e utiliza GFP KERNEL em vez de GFP NOIO. Como solução temporária, considere desativar as funções do proc control() e do proc bulk() até que um patch esteja disponível. Além disso, definir echo 0 > /proc/sys/kernel/hung task timeout secs pode desativar a mensagem “Tarefa X bloqueada por mais de N segundos”.Correção
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Almalinux
Centos
Debian
Linux Kernel
Red Hat
Red Os
Rocky Linux
Suse