
PoC genérico para CVE-2026-34990 - Escalada de privilegios local en CUPS 2.4.16 mediante divulgación de token local y sobrescritura arbitraria de archivos root.
Una prueba de concepto genérica para CVE-2026-34990, una vulnerabilidad de escalada de privilegios local que afecta a CUPS 2.4.16.
El exploit demuestra cómo un usuario local sin privilegios puede abusar de la autenticación local de CUPS y del comportamiento de configuración de impresoras para obtener una escritura arbitraria de archivos como root y escalar privilegios.
CVE-2026-34990 fue reportada originalmente por:
Asim Viladi Oglu Manizada (@manizada)
No soy el descubridor de esta vulnerabilidad.
Este repositorio contiene mi implementación de prueba de concepto adaptada y probada, basada en información técnica divulgada públicamente.
A alto nivel, la cadena de explotación es:
Usuario local sin privilegios
|
v
Crear impresora temporal en CUPS
|
v
Activar autenticación IPP saliente
|
v
Capturar Authorization: Local token
|
v
Reutilizar token contra operaciones privilegiadas de CUPS
|
v
Crear/persistir impresora file://
|
v
Enviar trabajo de impresión
|
v
Escritura arbitraria de archivos propiedad de root
|
v
Escalada de privilegios
El PoC utiliza automáticamente el nombre de usuario local actual.
Por ejemplo, cuando se ejecuta como:
alice
la carga útil de demostración apunta a:
/etc/sudoers.d/alice-pwn
e intenta escribir:
alice ALL=(ALL) NOPASSWD: ALL
Un exploit exitoso puede verificarse luego con:
sudo -n id
Ejemplo:
uid=0(root) gid=0(root) groups=0(root)
El PoC requiere:
ipptoollplpstatVerificar la versión de CUPS:
cups-config --version
Verificar que el planificador esté en ejecución:
lpstat -r
Verificar el listener local de CUPS:
ss -lnt | grep 631
Clonar el repositorio:
git clone https://github.com/Noorkhalel/CVE-2026-34990-CUPS-LPE-PoC.git
cd CVE-2026-34990-CUPS-LPE-PoC
Ejecutar:
python3 exploit.py
Ejemplo de salida:
[*] 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
Después de una explotación exitosa:
sudo -n bash
Este PoC está escrito intencionalmente como una implementación genérica del CVE divulgado públicamente.
No contiene:
Este código se proporciona para:
Utilice este código únicamente en sistemas de su propiedad o en sistemas para los que tenga autorización explícita.
El autor no es responsable del uso indebido de este software.
Descubrimiento de la vulnerabilidad:
Asim Viladi Oglu Manizada (@manizada)
Adaptación del PoC, pruebas y documentación:
Noor Khalil