PT-2024-30696

CVE-2024-43834

·

Publicado

2024-07-14

·

Atualizado

2026-10-21

Descrição por

CVSS 3.1
7.8
Alta
MétricasAV: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.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
Explorabilidade
Exploit
Correção
Impactos
Fornecedores
Produtos afetados
Enumeração de fraquezas
Identificadores relacionados
ALSA-2025_12746
ALSA-2025_12752
ALSA-2025_12753
ALSA-2025_16880
ALT-PU-2024-14046
AZL-51980
CLSA-2026-1783791447
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
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾