PT-2024-3369 · Linux+6 · Linux Kernel+6

Norihiko Hama

·

Publicado

2024-04-04

·

Atualizado

2026-03-14

·

CVE-2024-26996

CVSS v3.1

7.8

Alta

VetorAV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Nome do software vulnerável e versões afetadas:
Kernel do Linux (versões afetadas não especificadas)
Descrição:
O problema está relacionado a um erro de uso após liberação de memória (use-after-free) na funcionalidade de dispositivos USB do kernel do Linux, especificamente no módulo f ncm. Quando a função ncm está em execução e a interface usb0 é desativada devido à perda de conexão, a função eth stop() é chamada. Se ocorrer um erro de transporte USB em usb ep enable(), o in ep e/ou o out ep podem não ser habilitados. Como resultado, ncm disable() é chamado para desabilitar o desligamento do ncm, mas gether disconnect() nunca é chamado, uma vez que o in ep não está habilitado. Isso faz com que o objeto ncm seja liberado em ncm unbind(), mas o dev->port usb associado a ncm->port não é NULL. Quando a ligação ncm é chamada novamente para recuperar o netdev, o objeto ncm é realocado, mas a interface usb0 já está associada ao objeto ncm liberado anteriormente. Isso pode causar um erro de memória do tipo “use-after-free” quando eth start xmit() é chamado.
Os detalhes técnicos sobre a exploração incluem:
  • A função ncm disable() não chamar gether disconnect() devido a in ep não estar habilitado.
  • O objeto ncm ser liberado em ncm unbind(), mas dev->port usb permanecer associado ao objeto liberado.
  • O objeto ncm ser realocado quando ncm bind é chamado novamente, mas a interface usb0 ainda estar associada ao objeto ncm liberado anteriormente.
Recomendações:
No momento, não há informações sobre uma versão mais recente que co

Exploit

Use After Free

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

Enumeração de Fraquezas

Identificadores relacionados

BDU:2024-03641
CVE-2024-26996
DSA-5680-1
MGASA-2024-0263
MGASA-2024-0266
OESA-2024-1677
OESA-2024-1678
OESA-2025-1080
SUSE-SU-2024:1979-1
SUSE-SU-2024:1983-1
SUSE-SU-2024:2008-1
SUSE-SU-2024:2019-1
SUSE-SU-2024:2135-1
SUSE-SU-2024:2184-1
SUSE-SU-2024:2190-1
SUSE-SU-2024:2203-1
SUSE-SU-2024:2973-1
SUSE-SU-2025:20008-1
SUSE-SU-2025:20028-1
SUSE-SU-2025:20166-1
SUSE-SU-2025:20249-1
USN-6893-1
USN-6893-2
USN-6893-3
USN-6898-1
USN-6898-2
USN-6898-3
USN-6898-4
USN-6917-1
USN-6918-1
USN-6919-1
USN-6927-1
USN-7019-1
USN-7496-1
USN-7496-2
USN-7496-3
USN-7496-4
USN-7496-5
USN-7506-1
USN-7506-2
USN-7506-3
USN-7506-4
USN-7516-1
USN-7516-2
USN-7516-3
USN-7516-4
USN-7516-5
USN-7516-6
USN-7516-7
USN-7516-8
USN-7516-9
USN-7517-1
USN-7517-2
USN-7517-3
USN-7518-1
USN-7539-1
USN-7540-1
USN-7640-1

Produtos afetados

Astra Linux
Debian
Linuxmint
Linux Kernel
Red Os
Suse
Ubuntu