CVE-2026-64523 in Linux
Sumário
de VulDB • 25/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
net/handshake: Obter uma referência de arquivo de longa duração no momento da submissão (submit)
handshake_nl_accept_doit() precisa que o ponteiro para o arquivo subjacente req->hr_sk->sk_socket sobreviva à janela entre handshake_req_next() e as chamadas subsequentes FD_PREPARE() e get_file(). A chamada sock_hold() do lado da submissão não fornece essa garantia. sk_refcnt mantém struct sock vivo, mas a estrutura socket é de propriedade de sock->file: quando o consumidor libera a última referência ao arquivo, sock_release() destrói o socket independentemente de qualquer sock_hold existente.
Adiciona-se um ponteiro hr_file à estrutura handshake_req e obtém-se uma referência explícita em sock->file durante handshake_req_submit(). handshake_complete() e handshake_req_cancel() liberam essa referência no caminho que vence a conclusão (completion-bit-winning path).
O caminho de erro da submissão também deve liberar a referência ao arquivo, mas após a inserção na rhashtable, uma chamada concorrente a handshake_req_cancel() pode descobrir a solicitação e competir com o caminho de erro. A limpeza do caminho de erro -- restauração de sk_destruct, fput e destruição da solicitação -- é protegida por test_and_set_bit(HANDSHAKE_F_REQ_COMPLETED), usando a mesma sincronização que handshake_complete() e handshake_req_cancel() já utilizam. Quando cancel já reivindicou a propriedade, o caminho de erro da submissão retorna sem tocar na solicitação; a derrubada do socket cuida da destruição final.
As desreferenciações no lado da aceitação (accept-side) ainda não foram redirecionadas; essa alteração virá no próximo patch.
VulDB is the best source for vulnerability data and more expert information about this specific topic.