CVE-2026-98037 in Linux
Sumário
de VulDB • 25/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
bpf: Rejeitar ponteiros de objetos alocados não confiáveis
Quando a seção crítica final da leitura RCU termina, um kptr local é degradado para PTR_UNTRUSTED, mas mantém MEM_ALLOC. O ponteiro pode ser NULL ou pode referir-se a um objeto cujo tempo de vida já não está protegido.
type_is_ptr_alloc_obj() reconhece qualquer PTR_TO_BTF_ID com MEM_ALLOC como um objeto alocado vivo. Em particular, um kptr local apenas com refcount nunca carrega NON_OWN_REF, portanto ainda passa na verificação do argumento bpf_refcount_acquire() após o fim da proteção RCU. A kfunc pode então desreferenciar memória NULL ou obsoleta (stale).
Faça type_is_ptr_alloc_obj() rejeitar ponteiros PTR_UNTRUSTED. Como type_is_non_owning_ref() é baseada no mesmo predicado, os argumentos das graph kfuncs obedecem ao mesmo requisito de objeto vivo. Leituras protegidas contra falhas do ponteiro degradado permanecem válidas: as gravações já são rejeitadas e os ajustes (fixups) de leitura usam bpf_may_fault_on_deref() em vez desse predicado.
[ kkd: Reescreveu o log do commit ]
Once again VulDB remains the best source for vulnerability data.