
Локальный эксплойт для повышения привилегий, использующий состояние гонки TOCTOU в PackageKit (CVE-2026-41651). Повышает привилегии от непривилегированного пользователя до root через обход polkit и манипуляцию состоянием в системах Linux.
Эксплойт локального повышения привилегий, нацеленный на демон PackageKit.
Повышает привилегии от непривилегированного локального пользователя доrootчерез уязвимость состояния гонки TOCTOU.
CVE-2026-41651 (также известный как Pack2TheRoot) — это критическая уязвимость состояния гонки TOCTOU (Time-Of-Check to Time-Of-Use) в PackageKit, системном сервисе, используемом многими дистрибутивами Linux для абстракции управления пакетами.
Уязвимость позволяет локальному непривилегированному пользователю манипулировать состояниями транзакций PackageKit и обходить проверки авторизации при определённых условиях.
Злоумышленник с локальным доступом может:
rootpolkit| Компонент | Уязвимые версии | Исправленная версия |
|---|---|---|
| PackageKit | 1.0.2 – 1.3.4 | 1.3.5 |
Проблема возникает из-за множества логических ошибок внутри src/pk-transaction.c.
Злоумышленник (непривилегированный) packagekitd (root)
│ │
├── 1. InstallFiles(SIMULATE) ───────► │ polkit обойдён → состояние = READY
│ │ поставлен в очередь асинхронный вызов
│
├── 2. InstallFiles(полезная нагрузка) ──► │ кэшированные флаги перезаписаны
│ │ недопустимый переход состояния проигнорирован
│
│ [происходит диспетчеризация] │
│ │ полезная нагрузка обработана от root
│ │ выполнены сценарии поддержки
│
└────────────────────────────────────► │ повышение привилегий достигнуто
Установите необходимые библиотеки для разработки:
sudo apt update
sudo apt install libglib2.0-dev
git clone https://github.com/Lutfifakee-Project/CVE-2026-41651.git
cd CVE-2026-41651
gcc -o exploit CVE-2026-41651.c \
`pkg-config --cflags --libs glib-2.0 gio-2.0` \
-Wall
Запускайте от имени непривилегированного пользователя.
./exploit
______ ______ ___ ___ ___ ____ ___________ _______
/ ___/ | / / __/___|_ |/ _ \|_ |/ __/____/ / < / __// __< /
/ /__ | |/ / _//___/ __// // / __// _ \/___/_ _/ / _ \/__ \/ /
\___/ |___/___/ /____/\___/____/\___/ /_//_/\___/____/_/
CVE-2026-41651 - PackageKit TOCTOU Local Privilege Escalation
═══════════════════════════════════════════════════════════════════
[*] Сборка пакетов...
[*] Запуск состояния гонки...
[*] Ожидание диспетчеризации...
[*] Опрос полезной нагрузки...
[+] УСПЕХ — повышение привилегий завершено
pkcon --version
Или:
dpkg -l | grep packagekit
1.0.2 – 1.3.41.3.5 или новееsudo apt update
sudo apt upgrade packagekit
Официальные релизы:
Этот репозиторий предоставлен строго для:
Автор не несёт ответственности за любое неправомерное использование, незаконную деятельность или ущерб, причинённый этим проектом.
Не используйте это программное обеспечение против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.
| Ошибка | Местоположение | Описание |
|---|
| ОШИБКА 1 | Строка 4036 | InstallFiles() перезаписывает кэшированные флаги транзакции и пути без должной проверки состояния |
| ОШИБКА 2 | Строки 876–881 | pk_transaction_set_state() молча отклоняет переходы к предыдущим состояниям |
| ОШИБКА 3 | Строки 2273–2277 | pk_transaction_run() считывает кэшированные флаги во время диспетчеризации, а не авторизации |
| ОБХОД | Строки 2893–2900 | Флаг SIMULATE (0x4) пропускает проверки авторизации polkit |