
PoC de escalada local de privilégios no kernel Linux para CVE-2026-68121, encadeando PPPoE, FUSE e IP6GRE para corromper a memória do kernel e obter root.
[!WARNING] O PoC é fornecido exclusivamente para ajudar defensores, mantenedores e equipes de segurança autorizadas a validar patches, mitigações, detecções e exposição em sistemas que possuem ou que estão explicitamente autorizados a testar.
Você é o único responsável por garantir que seu uso deste material seja legal, autorizado, controlado e conduzido em um ambiente de teste isolado.
[!WARNING] Este PoC é destrutivo. Ele corrompe deliberadamente a memória do kernel em execução. Uma sobrescrita mal posicionada pode corromper memória do kernel não relacionada e travar/crashar a máquina.
Execute apenas em uma VM descartável/host descartável.
O PoC:
struct file falsos e
prepara uma fdtable populada para a alocação alvodev_hard_header() realocar o head do skb, então usa o ponteiro obsoleto do cabeçalho PPPoE
para redirecionar uma entrada da fdtable para o arquivo falso, e/bin/sh -p.O PoC assume e tem como alvo x86-64 para manter as coisas simples. Em teoria, o bug não deve ser específico de arquitetura, mas você precisaria portar muita coisa (desde o vazamento da base do kernel até o resto da cadeia).
Enumerando exaustivamente para fins de completude:
6.19.10-300.fc44.x86_64, ou Ubuntu 24.04 com
6.8.0-124-generic ou 6.8.0-136-generic (você pode tentar remover essas
verificações, mas outras distros/versões de kernel podem exigir customização/grooming
por alvo)passwd e um diretório home que ela
possuiCAP_NET_ADMIN e
CAP_NET_RAW dentro desse namespace/dev/fuse, além de suporte a FUSE, PPPoE, IP6GRE, AF_PACKET/TX-ring
e team no Fedora ou suporte a bonding no Ubuntumembarrier privado expedited para layouts de ordem baixa selecionadosRLIMIT_NOFILE grande o suficiente para a geometria de carrier
selecionada, verificado em tempo de execução e potencialmente exigindo até 8.192 descritoresTestado apenas com 4GB de RAM e uma variedade de contagens de 4+ CPUs. Outras combinações de CPU/memória podem precisar de mais grooming e/ou podem redirecionar a escrita para memória não relacionada.
Execute como um usuário sem privilégios com uma entrada em passwd. A conversão para Ubuntu pode
levar um tempo (por exemplo, mais de 300 tentativas).
python3 pppoeject_root_repro.py
gcc com libc e headers de desenvolvimento do Linux UAPI,
taskset, unshare, ip, true e /bin/sh, além de aa-exec
e o perfil trinity carregado no Ubuntu se unshare -Urn direto for
negado