Quarteto de LPE: quatro bugs do kernel Linux com PoCs para root
Técnicas e Métodos de Ataque2026-09-24, 10:04
Quarteto de LPE: quatro bugs do kernel Linux com PoCs para root
O pesquisador Asim Viladi Oglu Manizada publicou detalhes de quatro vulnerabilidades do kernel Linux que existiam há 10 a 21 anos. Para cada uma, ele desenvolveu um PoC demonstrando escalonamento local de privilégios para root.
DirtyAH6 — CVE-2026-80844. No IPv6 IPsec AH,
ipv6_rearrange_rthdr() não verificava se segments_left excedia o número de segmentos, permitindo que memmove() saísse dos limites. O PoC corrompe skb_shared_info, substitui pam_rootok.so por pam_permit.so e obtém root via su.TUNderflow — CVE-2026-81000. Um underflow de inteiro em
SKB_MAX_HEAD() durante o cálculo de receive-headroom para TUN/TAP faz com que a aritmética de ponteiros subsequente coloque skb->data fora do buffer alocado. Uma escrita fora dos limites via Open vSwitch permite que o PoC modifique um buffer de pipe respaldado por arquivo e obtenha root via PAM.PPPoEject — CVE-2026-68121.
pppoe_sendmsg() armazena um ponteiro dentro do skb, embora o cabeçalho do skb possa ser realocado e a alocação antiga liberada durante dev_hard_header(). Escritas subsequentes através do ponteiro obsoleto permitem que o PoC corrompa struct file e, por fim, defina credenciais de root.DiagSpill — CVE-2026-74469. No SCTP, o
transport_count de 16 bits dá a volta em 65.536 transportes pares. sctp_diag então não reserva espaço para a lista de pares, mas copia toda ela, produzindo uma escrita fora dos limites de aproximadamente 8 MiB a partir de um buffer Netlink. O PoC corrompe tabelas de páginas, mapeia memória do host através delas, encontra um objeto de credencial e o reescreve para obter root.Os três primeiros LPEs publicados usam namespaces de usuário não privilegiados, embora os caminhos afetados também sejam acessíveis a processos com as capacidades necessárias. DiagSpill não requer namespaces de usuário ou capacidades especiais se SCTP e
sctp_diag estiverem disponíveis.Dois dos bugs têm cenários remotos limitados. DirtyAH6 pode causar corrupção de memória em um roteador/gateway IPv6 com modo de transporte AH. Em ambiente de laboratório, o autor obteve root remoto após preparação preliminar de memória, mas considera a preparação totalmente remota extremamente difícil. Com SCTP ASCONF/ADD-IP habilitado, DiagSpill permite corrupção/DoS remoto; no entanto, o autor não encontrou caminho prático para root remoto.
As vulnerabilidades foram descobertas como parte de caça a vulnerabilidades assistida por IA: o autor combinou rastreamento baseado em grafo de objetos relevantes para segurança com ferramentas de agente para analisar o estado da memória.
As primeiras versões estáveis do kernel contendo todas as quatro correções são: 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109, 6.18.50 e 7.2.4.
PoC (DirtyAH6): https://github.com/manizada/DirtyAH6
PoC (TUNderflow): https://github.com/manizada/TUNderflow
PoC (PPPoEject): https://github.com/manizada/PPPoEject
PoC (DiagSpill): https://github.com/manizada/DiagSpill
Vulnerabilidades
Produto
Mais