PT-2024-30696 · Linux+7 · Linux Kernel+7

Publicado

2024-07-14

·

Atualizado

2025-09-29

·

CVE-2024-43834

CVSS v3.1

5.5

Média

VetorAV: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 decorre de um contexto de espera inválido da função page pool destroy() quando um driver utiliza um pool de páginas e o XDP (eXpress Data Path). A função page pool create() cria um pool de páginas com uma contagem de referência padrão igual a 1. Quando o driver utiliza o XDP, ele registra um modelo de memória com xdp rxq info reg mem model(), o que aumenta a contagem de referência do pool de páginas para 2, caso o modelo de memória seja um pool de páginas. Para destruir o pool de páginas, o driver deve chamar tanto page pool destroy() quanto xdp unreg mem model(). No entanto, se page pool destroy() for chamada antes de xdp unreg mem model(), isso resulta em um aviso de contexto de espera inválido porque xdp unreg mem model() chama page pool destroy() com rcu read lock(), enquanto page pool destroy() adquire internamente mutex lock().
O problema é corrigido usando rhashtable lookup fast() em vez de rhashtable lookup() com rcu read lock(). O xa é liberado por xdp mem allocator rcu free(), que é chamado por call rcu() de mem xa remove(). O mem xa remove() é chamado por page pool destroy() quando a contagem de referências chega a 0. Como o xa já está protegido pelo mecanismo de contagem de referências no plano de controle, remover o rcu read lock() para page pool destroy() é seguro.
Recomendações
Para resolver o problema, atualize o kernel do Linux para a versão 6.6.50 ou posterior. Para versões anteriores à 6.6.50, certifique-se de que `page poo

Exploit

Correção

Use After Free

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

ALSA-2025_12746
ALSA-2025_12752
ALSA-2025_12753
ALSA-2025_16880
ALT-PU-2024-14046
AZL-51980
BDU:2025-01723
CVE-2024-43834
DLA-3912-1
DLA-4008-1
INFSA-2025_6966
MGASA-2024-0309
MGASA-2024-0310
OESA-2024-2106
OESA-2024-2107
OESA-2024-2108
OESA-2024-2296
OPENSUSE-SU-2024_3190-1
OPENSUSE-SU-2024_3209-1
OPENSUSE-SU-2024_3483-1
RHSA-2025:6966
RHSA-2025_6966
SUSE-SU-2024:3190-1
SUSE-SU-2024:3194-1
SUSE-SU-2024:3195-1
SUSE-SU-2024:3209-1
SUSE-SU-2024:3383-1
SUSE-SU-2024:3483-1
SUSE-SU-2025:20044-1
SUSE-SU-2025:20047-1
USN-7100-1
USN-7100-2
USN-7123-1
USN-7144-1
USN-7154-1
USN-7154-2
USN-7155-1
USN-7156-1
USN-7194-1
USN-7196-1

Produtos afetados

Alt Linux
Astra Linux
Linuxmint
Linux Kernel
Red Hat
Red Os
Suse
Ubuntu