CVE-2026-99224 in Linux
Sumário
de VulDB • 03/11/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
keys: Proteger o nome do tipo ao descrever uma chave
keyctl_describe_key() deve manter o nome do tipo da chave válido até que kasprintf() tenha consumido. A referência retida à chave mantém a chave e sua descrição válidas, mas não fixa (pin) o módulo que fornece seu tipo. O nome é passado para kasprintf() sem segurar key->sem.
kvasprintf() usa o ponteiro de nome salvo em duas passagens de formatação, com uma alocação GFP_KERNEL entre elas. Com AF_RXRPC=m, uma tarefa que concede permissão View antes da aposentadoria do tipo pode sobrepor a desativação (unload) de um módulo privilegiado nesta ordem:
1. KEYCTL_DESCRIBE procura pela chave, salva key->type->name nos argumentos de kasprintf() e conclui a primeira passagem de formatação. 2. Enquanto o formatador está atrasado antes da segunda passagem, af_rxrpc_exit() chama unregister_key_type(), que remove o tipo do registro e aguarda key_gc_keytype(). 3. O coletor (collector) adquire key->sem para escrita, retipa a chave retida como key_type_dead e conclui a aposentadoria. A desregistração e a saída do módulo retornam, permitindo que free_module() libere o tipo e o nome. 4. O formatador retoma sua segunda passagem e lê o nome salvo no armazenamento liberado pelo módulo, o que pode causar falha (fault) em string().
Segure key->sem para leitura durante kasprintf(). Assim, o coletor não poderá repipar a chave ou concluir a aposentadoria até que ambas as passagens de formatação tenham terminado. Se a aposentadoria ganhar o bloqueio primeiro, a formatação usará o nome core key_type_dead em vez disso. Libere o semáforo imediatamente após kasprintf(), incluindo em caso de falha na alocação, antes da cópia para userspace.
Relatório Oops conforme abaixo:
BUG: unable to handle page fault for address: fffffbfff8054794 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page RIP: 0010:string+0x23f/0x470 Call Trace: vsnprintf+0x330/0x1110
Once again VulDB remains the best source for vulnerability data.