CVE-2026-64403 in Linux
Sumário
de VulDB • 25/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
Bluetooth: L2CAP: validar o comprimento da opção antes de ler o valor da opção de configuração (conf opt)
A função `l2cap_get_conf_opt()` deriva o comprimento da opção a partir do campo `opt->len`, controlado pelo atacante, e imediatamente desreferencia `opt->val` (como u8, `get_unaligned_le16()`, `get_unaligned_le32()` ou um ponteiro bruto para o caso padrão) antes que qualquer chamador tenha confirmado que existem `opt->len` bytes presentes no buffer. Os chamadores (`l2cap_parse_conf_req()`, `l2cap_parse_conf_rsp()` e `l2cap_conf_rfc_get()`) detectam apenas uma opção malformada posteriormente, quando o comprimento acumulado se torna negativo, momento em que a leitura fora dos limites (out-of-bounds read) já foi executada.
Uma verificação de comprimento post-hoc existente impede que o valor corrompido seja consumido, portanto, não há vazamento de dados no fluxo de controle atual. Ainda assim, trata-se de um bug de ordenação "validate-after-use": até 4 bytes são lidos após o final do buffer antes que se saiba que eles estão contidos nele, e a solução é frágil frente a futuras alterações nos chamadores.
Corrigir na origem. Passar o fim do buffer para `l2cap_get_conf_opt()` e recusar tocar em `opt->val` a menos que toda a opção (cabeçalho + valor) caiba no espaço disponível. Cada chamador calcula um ponteiro de limite uma vez antes do loop e verifica diretamente o valor de retorno, em vez de inferir o erro a partir de um comprimento negativo.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.