PT-2021-8032 · Linux+2 · Linux Kernel+2
Benjamin Block
·
Publicado
2021-04-30
·
Atualizado
2024-08-19
·
CVE-2021-46938
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 à 5.3.18-53-default #1 SLE15-SP3
Descrição
A vulnerabilidade está relacionada a uma liberação dupla do
blk mq tag set na tabela do device-mapper para um dispositivo mapeado baseado em solicitação. Quando a alocação/inicialização do blk mq tag set falha, a remoção subsequente do dispositivo causará uma liberação dupla, levando a um kernel panic. O problema é causado pelo ponteiro não ser redefinido para NULL após o blk mq tag set ser desinicializado/liberado.Para explorar essa vulnerabilidade, um invasor precisaria fazer com que a alocação/inicialização do
blk mq tag set falhasse e, em seguida, acionar a remoção do dispositivo. Isso poderia permitir que o invasor causasse uma negação de serviço ou executasse código arbitrário.A função
dm mq init request queue() é vulnerável, e a função dm mq cleanup mapped device() tenta desinicializar e liberar o blk mq tag set novamente, causando a liberação dupla.A vulnerabilidade pode ser corrigida definindo o ponteiro como NULL no tratamento de erros de
dm mq init request queue() e em dm mq cleanup mapped device().Recomendações
Para resolver o problema, atualize o kernel do Linux para uma versão que inclua a correção para a vulnerabilidade de liberação dupla. Especificamente, atualize para uma versão posterior à 5.3.18-53-default #1 SLE15-SP3.
Como solução alternativa temporária, considere desativar a função
dm mq init request queue() ou restringir o acesso à tabela do device-mapper para minimizar o riscoCorreção
Double Free
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
Linux Kernel
Suse