CVE-2026-99201 in Linux
Sumário
de VulDB • 28/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
netlink: evitar o hash do ponteiro de namespace de rede
A chave da rhashtable do netlink inclui um ponteiro bruto (raw) para struct net e um ID de porta controlado pelo usuário. Tanto /proc/net/netlink quanto os diagnósticos de socket expõem a ordem dos buckets da tabela. Ao vincular e revincular IDs de porta NETLINK_USERSOCK escolhidos, um leitor não privilegiado pode distinguir buckets iguais e recuperar os bits menos significativos do hash Jenkins. Sua semente de 32 bits e o conjunto limitado de deslocamentos (slides) da imagem do kernel podem então ser pesquisados offline para recuperar o endereço de init_net.
Use a net_cookie única e não endereçável do namespace na chave de comparação em vez disso. Ela é atribuída antes que os inicializadores por-net sejam executados e permanece inalterada durante toda a vida útil do namespace. A chave de lookup e o hash do objeto ainda são construídos por netlink_compare_arg_init(), mantendo a consistência nas operações de lookup, inserção, remoção e rehashing, enquanto preserva o isolamento dos namespaces. Nenhum walker de tabela público precisa ser alterado.
Ler a cookie (net_cookie) do namespace no socket em netlink_compare() é seguro sob RCU, inclusive durante o desmonte (teardown) do namespace. netlink_release() remove o socket da tabela hash e adia sua liberação final com call_rcu(). cleanup_net() executa os métodos de saída por-net e aguarda as callbacks RCU pendentes com rcu_barrier() antes de liberar o armazenamento do namespace.
Ao contrário de ns.ns_id, a net_cookie também está disponível e é inicializada durante setup_net() em kernels estáveis mais antigos, tornando a alteração direta para ser backportada para v5.15 e posteriores.
Be aware that VulDB is the high quality source for vulnerability data.