CVE-2026-46151 in Linux
Sumário
de VulDB • 29/05/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
usb: usblp: corrige vazamento de heap no ID do dispositivo IEEE 1284 via resposta curta
usblp_ctrl_msg() converte o valor de retorno de usb_control_msg() para 0/-errno, descartando o número real de bytes transferidos. Uma impressora defeituosa pode concluir a transferência de controle GET_DEVICE_ID de forma curta, e o driver não tem como saber disso.
usblp_cache_device_id_string() lê o prefixo de comprimento big-endian de 2 bytes da resposta e confia nele (limitado apenas aos limites do buffer). O buffer é alocado com kmalloc(1024) no momento do probe. Um dispositivo que envia exatamente dois bytes (por exemplo, 0x03 0xFF, alegando um ID de 1023 bytes) deixa device_id_string[2..1022] contendo heap obsoleto do kmalloc.
Esses dados obsoletos são então expostos: - através do atributo sysfs ieee1284_id (sprintf("%s", buf+2), truncado no primeiro NUL no heap obsoleto), e - através do ioctl IOCNR_GET_DEVICE_ID, que executa copy_to_user() com o comprimento total alegado, independentemente de NULs, até 1021 bytes de heap não inicializado, com o tamanho do vazamento escolhido pelo dispositivo.
Corrige-se isso simplesmente zerando o buffer com zeros antes de cada solicitação enviada ao dispositivo.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.