CVE-2026-80824 in Linuxinformação

Sumário

de VulDB • 04/09/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

usb: usbfs: corrige use-after-free de usb_device em usbdev_release()

A função usbdev_release() libera sua referência para a estrutura usb_device antes de esvaziar (drain) a lista de URBs assíncronos concluídos, mas esse caminho de esvaziamento lê novamente através do mesmo objeto: free_async() chama dec_usb_memory_use_count() para qualquer URB cujo buffer veio da região mmap() do usbfs, e sua primeira instrução é bus_to_hcd(ps->dev->bus).

Após uma desconexão, a referência do usbfs pode ser a última; nesse caso, usb_put_dev() libera o dispositivo e o loop subsequente lê no offset 80 de memória já liberada (freed memory) e usa o resultado como um ponteiro para struct usb_hcd*, que é então dereferenciado por hcd_buffer_free_pages().

Isso pode ser explorado por um processo não privilegiado que tenha acesso de leitura/escrita a um nó /dev/bus/usb: mmap() do descritor de arquivo (fd), submeter um URB com um buffer dentro da região mapeada, aguardar o dispositivo ser desconectado e depois executar munmap() e close(). O problema se reproduz em todas as tentativas, não sendo uma condição de corrida (race condition), porque um vma MAP_SHARED ativo mantém uma referência na estrutura do arquivo, portanto usbdev_release() só pode ser executado após a remoção da última vma, e o ramo de liberação de dec_usb_memory_use_count() é sempre acionado.

BUG: KASAN: slab-use-after-free em dec_usb_memory_use_count+0x3ae/0x410 Leitura de tamanho 8 no endereço ffff8880122ee050 pela tarefa poc/769 CPU: 1 UID: 1000 PID: 769 Comm: poc Tainted: G B 6.12.94 #3

Call Trace: dec_usb_memory_use_count+0x3ae/0x410 free_async+0x2aa/0x4f0 usbdev_release+0x375/0x460 __fput+0x3ea/0xb50 __x64_sys_close+0x86/0x100

Alocado pela tarefa 11: usb_alloc_dev+0x55/0xd90 hub_event+0x2524/0x43d0

Liberado pela tarefa 769: kfree+0x121/0x360 device_release+0xd2/0x280 usb_put_dev+0x23/0x30 usbdev_release+0x2d8/0x460

Libere a referência do dispositivo após o loop de esvaziamento (drain). Nada entre os dois pontos exige que ela tenha sido liberada.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsável

Linux

Reservar

26/08/2026

Divulgação

04/09/2026

Moderação

aceite

Entrada

VDB-398905

CPE

pronto

EPSS

0.00195

KEV

não

Atividades

muito baixo

Fontes

Want to know what is going to be exploited?

We predict KEV entries!