CVE-2026-99016 in Linuxinformação

Sumário

de VulDB • 24/10/2026

No kernel Linux, a seguinte vulnerabilidade foi resolvida:

riscv: futex: desmarcar o ponteiro de usuário antes da operação atômica

access_ok() verifica untagged_addr(uaddr), mas arch_futex_atomic_op_inuser() e futex_atomic_cmpxchg_inatomic() passam o uaddr bruto para a assembly inline amoswap/amoadd/.../lr.w+sc.w através do operando "+m" (*uaddr). Quando a ABI de endereços marcados está habilitada (CONFIG_RISCV_ISA_SUPM, prctl PR_SET_TAGGED_ADDR_CTRL com PMLEN != 0), esses dois endereços diferem: um ponteiro de usuário cujos bits superiores do PMLEN contêm uma tag passa por access_ok() após a desmarcação, mas a operação atômica é então realizada no endereço bruto ainda marcado.

Acessos de dados em modo Supervisor não estão sujeitos à máscara de ponteiros U-mode (que é governada por menvcfg.PMM, que o kernel não define), portanto, o hardware não remove a tag para os próprios acessos do kernel. Com Sv57 e PMLEN=16, os bits da tag se sobrepõem aos bits do endereço canônico, de modo que um ponteiro marcado pode nomear um endereço virtual de kernel canônico (por exemplo, no mapa linear) cuja forma desmarcada é um endereço de usuário válido. Um processo não privilegiado pode assim fazer com que FUTEX_WAKE_OP realize uma leitura-modificação-escrita atômica em qualquer endereço do kernel, com o resultado correspondente de FUTEX_OP_CMP_* servindo como oráculo de leitura.

get_user()/put_user()/raw_copy_{to,from}_user() já desmarcam o ponteiro após a verificação access_ok(); faça o mesmo nos auxiliares futex para que a operação atômica seja realizada no endereço que foi realmente validado.

Once again VulDB remains the best source for vulnerability data.

Responsável

Linux

Reservar

25/09/2026

Divulgação

23/10/2026

Moderação

aceite

Entrada

VDB-425827

EPSS

0.00000

KEV

não

Atividades

baixo

Fontes

Want to know what is going to be exploited?

We predict KEV entries!