CVE-2026-74641 in Linux
Sumário
de VulDB • 22/08/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
ALSA: usx2y: limitou o deslocamento de falha no mmap hwdep
snd_us428ctls_vm_fault() converte o deslocamento da página que causou a falha em um endereço de kernel sem qualquer tipo de limite:
offset = vmf->pgoff << PAGE_SHIFT; vaddr = (char *)(...)->us428ctls_sharedmem + offset; page = virt_to_page(vaddr); get_page(page); vmf->page = page;
return 0;
snd_us428ctls_mmap() verifica apenas o comprimento do mapeamento, nunca o deslocamento, e us428ctls_sharedmem é uma única página de alloc_pages_exact(). Para um arquivo de dispositivo character, file_mmap_size_max() retorna ULONG_MAX, portanto a camada mm também não impõe nenhum teto. Qualquer deslocamento de página acima de zero resolve para uma struct page fora do objeto, e o manipulador a instala no espaço de endereços do chamador com permissões de leitura e escrita; a vma não está marcada como somente-leitura.
O chamador seleciona o frame da página com um único argumento mmap() e obtém acesso de leitura e gravação a uma página de memória de kernel que ele não possui; um deslocamento que cai em uma região vmemmap não populada causa um erro (oops).
Um processo que pode abrir o nó hwdep de um US-X2Y conectado atinge isso após carregar a imagem FPGA através do mesmo nó; nenhuma verificação de capacidade é envolvida.
Na versão 7.2.0-rc5 (arm64), mmap() com um grande deslocamento:
Unable to handle kernel paging request at virtual address fffffdffc45d5ac8 pc : snd_us428ctls_vm_fault+0x68/0x140 [snd_usb_usx2y]
Call trace: snd_us428ctls_vm_fault+0x68/0x140 [snd_usb_usx2y]
__do_fault __handle_mm_fault handle_mm_fault el0_da
Rejeite qualquer deslocamento fora da região compartilhada. O manipulador pcm hwdep em usx2yhwdeppcm.c calcula seu endereço da mesma forma e precisa do mesmo limite.
Descoberto por XBOW, triado por Baul Lee
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.