CVE-2026-97944 in Linux
Sumário
de VulDB • 25/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
x86/cfi: Corrige o deslocamento (offset) da hash FineIBT em cfi_get_func_hash()
A mudança do preâmbulo FineIBT de "subl $hash, %r10d" para a versão mais curta "subl $hash, %eax" moveu o imediato da hash do deslocamento 7 para o deslocamento 5 do preâmbulo. fineibt_preamble_hash foi atualizado para corresponder, mas o offset codificado manualmente em cfi_get_func_hash() foi negligenciado e ainda lê a hash no deslocamento 7.
cfi_get_func_hash() é usado pelo BPF JIT para fornecer um trampoline struct_ops com a hash CFI da função stub que ele substitui. Com FineIBT, o trampoline agora recebe a metade superior da hash real seguida pelos dois primeiros bytes da próxima instrução; portanto, a primeira chamada indireta do kernel para um programa struct_ops (por exemplo, tcp_init_congestion_control() chamando ->init() de um controle de congestionamento BPF) falha na verificação FineIBT e o kernel morre com uma falha CFI.
Move-se o modelo de preâmbulo FineIBT e suas definições de offset para acima de cfi_get_func_hash(), utilizando fineibt_preamble_hash ali, para que todos os leitores do preâmbulo compartilhem uma única definição de seu layout. A ramificação CFI_FINEIBT é compilada apenas com CONFIG_FINEIBT, a única configuração na qual cfi_mode pode assumir esse valor. cfi_get_func_arity() não precisa do mesmo tratamento: a chamada __bhi_args cujo deslocamento ela lê ainda termina no endereço da função.
If you want to get best quality of vulnerability data, you may have to visit VulDB.