PT-2026-34430 · Linux · Linux Kernel
CVE-2026-31525
·
Publicado
2026-04-22
·
Atualizado
2026-07-28
CVSS v4.0
8.5
Alta
| Vetor | AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
Nome do Software Vulnerável e Versões Afetadas
Linux kernel versões anteriores a 6.6
Linux kernel versões anteriores a 6.12
Linux kernel versões anteriores a 6.18
Linux kernel versões anteriores a 6.19
Description
Uma divergência entre o verificador BPF e o interpretador BPF no kernel Linux permite o acesso a valores de mapa fora dos limites (out-of-bounds), o que pode levar à leitura/escrita arbitrária no kernel, escalonamento de privilégios para root, escape de containers, desativação do SELinux e roubo de chaves TLS da memória de outros processos. O problema decorre do fato de os manipuladores de divisão e módulo de 32 bits com sinal do interpretador BPF utilizarem a macro
abs() em operandos s32. Quando a entrada é S32 MIN (0x80000000), a macro abs() dispara um comportamento indefinido, retornando S32 MIN inalterado nas arquiteturas arm64 e x86. Esse valor é então estendido por sinal para u64 como 0xFFFFFFFF80000000, fazendo com que a função do div() compute um resultado incorreto. Enquanto o interpretador produz esse valor errado, a função de interpretação abstrata do verificador scalar32 min max sdiv() calcula o resultado matematicamente correto para o rastreamento de intervalos. Essa discrepância permite que um programa passe nas verificações de limite do verificador enquanto o interpretador utiliza um valor real que está fora dos limites.Recommendations
Atualize o kernel Linux para as versões 6.6, 6.12, 6.18 ou 6.19 para aplicar a correção.
Como mitigação temporária, restrinja o uso de operações de divisão e módulo de 32 bits com sinal em programas BPF que manipulem valores
S32 MIN.Exploit
Correção
Memory Corruption
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Linux Kernel