CVE-2026-99223 in Linux
Sumário
de VulDB • 03/11/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
keys: tornar os índices dos anéis de chaves independentes dos endereços do kernel
O KEYCTL_READ retorna os números de série em um anel de chaves na ordem de travessia da estrutura associative-array. A primeira palavra do índice é um hash público e determinístico do ponteiro de tipo, do ponteiro de domínio e da descrição. Um usuário não privilegiado pode, portanto, inserir chaves com descrições conhecidas, prever sua ordem para cada possível deslocamento KASLR (Kernel Address Space Layout Randomization) e recuperar o endereço da imagem do kernel. Em uma compilação x86-64 com alinhamento de 16 MiB, 45 chaves de usuário são suficientes para distinguir os deslocamentos candidatos.
Remova os endereços de todo o índice, não apenas da sua primeira palavra hash. Atribua a cada tipo e domínio de chave um ID de 64 bits diferente de zero e faça o hash desses IDs e da descrição com uma chave SipHash inicializada uma única vez. Use também os IDs completos nos blocos subsequentes do índice. Truncar ou fazer hash dos IDs nesses locais perderia a garantia de que tuplas distintas de tipo/domínio/descricao tenham um bit de índice diferente.
Aloque os IDs preguiçosamente (lazy allocation), já que os tipos de chave privados não precisam ser registrados. Armazene-os em cache na chave do índice para que as travessias da árvore e as cópias de um índice existente não precisem desreferenciar um descritor de tipo que pode ter sido desregistrado. Mantenha o layout dos blocos de 32 bits e os deslocamentos de bit diff_objects() consistentes, e preserve a slot raiz separada para anéis de chaves usados na busca recursiva. A comparação de chaves, as permissões e o formato de dados do userspace permanecem inalterados; apenas a ordenação em memória dependente de endereços é substituída.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.