CVE-2026-90065 in Linux
Sumário
de VulDB • 19/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
net/smc: liberar o sock TCP interno em caso de falha na criação do socket IPPROTO_SMC
Os sockets IPPROTO_SMC criam um sock TCP interno ("clcsock") a partir do hook proto->init. Quando a criação do socket falha após a execução de proto->init – por exemplo, quando um programa BPF cgroup anexado ao BPF_CGROUP_INET_SOCK_CREATE nega o socket –, sk_common_release() invoca apenas sk_prot->destroy se ele estiver definido; no entanto, nem smc_inet_proto nem smc_inet6_proto definem esse hook, e smc_destruct() retorna antecipadamente a menos que sk_state seja SMC_CLOSED. Como resultado, cada chamada falha para socket(AF_INET, SOCK_STREAM, IPPROTO_SMC) vaza um tcp_sock, permitindo que uma tarefa não privilegiada capaz de anexar um programa BPF_CGROUP_INET_SOCK_CREATE com negação total ao seu próprio cgroup cresça a memória do kernel sem limites.
Adicione um hook .destroy em ambos os protos para liberar o clcsock via smc_clcsock_release(). smc_sk_init() armazena o sock no hashinfo smc antes da criação do clcsock, e smc_diag faz varredura nesse hash, referenciando smc->clcsock sem adquirir clcsock_release_lock, enquanto sk_common_release() chama .destroy antes de .unhash. Desfaça a associação (unhash) do sock antes de liberar o clcsock, conforme feito por __smc_release(), para que uma varredura concorrente não possa observar a liberação; a segunda chamada de unhash em sk_common_release() é um no-op.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.