
Proof-of-Concept-Exploit für CVE-2026-34990, eine lokale Rechteausweitung in CUPS 2.4.16 durch beliebiges Schreiben von Dateien über CUPS_CREATE_LOCAL_PRINTER und ein abgefangenes lokales Authentifizierungstoken.
CUPS 2.4.16 lokale Rechteausweitung durch beliebiges Schreiben von Dateien über CUPS_CREATE_LOCAL_PRINTER.
CUPS erlaubt das Erstellen lokaler Drucker mit einer device-uri, die auf einen file://-Pfad gesetzt ist. Das Absenden eines Druckauftrags mit document-format: application/vnd.cups-raw und compression: gzip veranlasst cupsd, die Auftragsdaten zu dekomprimieren und direkt in diesen Pfad zu schreiben — als der Benutzer, unter dem cupsd läuft (typischerweise root oder ein hochprivilegiertes Dienstkonto).
Das für administrative Vorgänge erforderliche lokale Authentifizierungstoken kann abgefangen werden, indem man ipptools cups-create-local-printer.test auf einen gefälschten IPP-Server auf localhost richtet. Wenn CUPS sich zur Authentifizierung verbindet, sendet es den Header Authorization: Local <token>, den man abfängt, bevor CUPS ihn verifizieren kann.
ipptool mit cups-create-local-printer.test, das auf den gefälschten Server zeigt — CUPS sendet sein lokales Authentifizierungstoken zur Authentifizierung401 WWW-Authenticate: Local trc="y" bei der ersten Verbindung, um das Token sauber abzufangendevice-uri: file:///etc/sudoers.d/<user>-pwn zu erstellensudo -n /bin/bashDer Aufruf create_local_printer hält seinen Socket während des Rennens offen — dies hält die Druckerregistrierung in der Schwebe, während die Admin-Operationen und der Druckauftrag eintreffen.
ipptool installiert mit cups-create-local-printer.test (Standard-CUPS-Installation)# writes /etc/sudoers.d/<your-username>-pwn by default
python3 exploit.py
# custom target
CUPS_TARGET=/etc/sudoers.d/youruser-pwn CUPS_ATTACKER=youruser python3 exploit.py
Bearbeiten Sie SUDOERS_LINE im Skript, um Ihren tatsächlichen Benutzernamen zu verwenden — der Standard ist aporter.
Der Exploit versucht es bis zu 12 Mal. Jeder Versuch löscht und erstellt den Drucker neu, um den Zustand zurückzusetzen.
Nur für autorisierte Sicherheitstests und Forschung.