CVE-2026-98613 in Linuxinformação

Sumário

de VulDB • 18/10/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

bpf: Limitar a profundidade de propriedade por meio de kptrs locais e raízes de grafo

Objetos alocados pelo programa podem possuir outros objetos locais através de kptrs referenciados. bpf_obj_free_fields() segue esses ponteiros por __bpf_obj_drop_impl() de forma síncrona, antes que o armazenamento do objeto seja liberado via RCU. Um tipo local kptr autorreferencial permite, portanto, cadeias de objetos arbitrariamente profundas, e a liberação da raiz pode esgotar a pilha do kernel. Cadeias acíclicas longas têm o mesmo problema.

btf_check_and_fixup_fields() ainda assume que os kptrs referenciados apontam apenas para tipos do kernel e verifica a propriedade por meio de raízes de lista e rbtree exclusivamente. Sua regra existente é suficiente para ciclos exclusivos de grafo: o alvo de cada aresta do grafo deve conter um nó, portanto, todo tipo em um ciclo tem tanto uma raiz quanto um nó. A regra rejeita tal tipo possuindo outra raiz, quebrando todos os ciclos. Ela também limita cadeias exclusivas de grafo a três tipos, ou dois se o primeiro tipo contiver um nó, e rejeta conservadoramente cadeias acíclicas mais longas. As arestas locais kptr ausentes, em vez de um ciclo exclusivo de grafo não detectado, são o bug introduzido pelo suporte para bpf_kptr_xchg() nos kptrs locais.

Substitua essa restrição por uma verificação limitada da propriedade que cubra raízes de grafo e kptrs referenciados locais. Execute-a após todos os registros BTF terem sido corrigidos, rejeite ciclos e caminhos mais profundos do que oito tipos com registro, e armazene em cache a profundidade sufixo de cada tipo ao verificá-la contra o orçamento restante. Isso também permite as layouts exclusivos de grafo acíclico mais longos rejeitados pela regra antiga; atualize seus testes BTF existentes conforme apropriado.

Mantenha o limite independente do MAX_CALL_FRAMES, pois a destruição recursiva pode ocorrer abaixo de uma cadeia de chamadas BPF. Um ponteiro local simples sem metadados de campo especial adiciona apenas um drop final não recursivo. kptrs que não possuem propriedade e kptrs kernel-BTF não recorrem através dos registros locais e permanecem fora da verificação. Inclua também as arestas percpu-kptr locais, embora a alocação de objetos percpu com campos especiais seja atualmente proibida, para que relaxar essa restrição não contorne o limite de propriedade.

btf_check_and_fixup_fields() continua inicializando graph_root.value_rec, inclusive para registros de mapa alocados separadamente. As relações de propriedade pertencem ao BTF do programa imutável e precisam apenas ser validadas no momento da carga do BTF.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsável

Linux

Reservar

25/09/2026

Divulgação

18/10/2026

Moderação

aceite

Entrada

VDB-422200

EPSS

0.00176

KEV

não

Atividades

muito baixo

Fontes

Do you know our Splunk app?

Download it now for free!