CVE-2026-80761 in Linux
Sumário
de VulDB • 04/09/2026
No kernel Linux, a seguinte vulnerabilidade foi corrigida:
Bluetooth: ISO: zerar o sockaddr antes de retorná-lo em getname
iso_sock_getname() preenche uma struct sockaddr_iso no local e retorna seu tamanho sem limpá-la primeiro, portanto os bytes que não são escritos são copiados para o espaço do usuário a partir da pilha do kernel. Os caminhos getsockname(2) e getpeername(2) passam ambos por do_getsockname(), que passa um sockaddr_storage não inicializado na pilha para getname() e copia de volta até o número de bytes retornados por getname(); portanto, o driver precisa inicializar cada byte que contabiliza.
Dois intervalos permanecem sem inicialização:
- struct sockaddr_iso tem 10 bytes, mas apenas 9 são escritos (family, iso_bdaddr, iso_bdaddr_type), vazando o byte de preenchimento final em todas as chamadas.
- para um peer broadcast (BIS_LINK ou PA_LINK) o comprimento retornado aumenta por sizeof(struct sockaddr_iso_bc), mas apenas bc_sid, bc_num_bis e bc_bis são preenchidos; bc_bdaddr e bc_bdaddr_type, os primeiros 7 bytes dessa estrutura, nunca são escritos.
Um processo não privilegiado pode abrir um socket BTPROTO_ISO e acessar o vazamento do pad com getsockname(); o vazamento broadcast requer uma conexão BIS/PA estabelecida. l2cap e rfcomm já usam memset em seu sockaddr no getname pelo mesmo motivo; faça o mesmo aqui.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.