
Exploit de escalonamento local de privilégios que visa a condição de corrida TOCTOU do PackageKit (CVE-2026-41651). Escalona de usuário sem privilégios para root por meio de bypass do polkit e manipulação de estado em sistemas Linux.
Exploit de escalação local de privilégios direcionado ao daemon PackageKit.
Escala de um usuário local sem privilégios pararootpor meio de uma vulnerabilidade de condição de corrida TOCTOU.
CVE-2026-41651 (também conhecida como Pack2TheRoot) é uma vulnerabilidade crítica de condição de corrida TOCTOU (Time-Of-Check to Time-Of-Use) no PackageKit, um serviço de sistema usado por muitas distribuições Linux para abstração do gerenciamento de pacotes.
A vulnerabilidade permite que um usuário local sem privilégios manipule os estados de transação do PackageKit e contorne as verificações de autorização sob condições específicas.
Um atacante com acesso local pode ser capaz de:
rootpolkit| Componente | Versões Vulneráveis | Versão Corrigida |
|---|---|---|
| PackageKit | 1.0.2 – 1.3.4 | 1.3.5 |
O problema se origina de múltiplas falhas de lógica dentro de src/pk-transaction.c.
Attacker (unprivileged) packagekitd (root)
│ │
├── 1. InstallFiles(SIMULATE) ───────► │ polkit bypassed → state = READY
│ │ queued async dispatch
│
├── 2. InstallFiles(payload) ─────────► │ cached flags overwritten
│ │ invalid state transition ignored
│
│ [dispatch occurs] │
│ │ payload processed as root
│ │ maintainer scripts executed
│
└────────────────────────────────────► │ privilege escalation achieved
Instale as bibliotecas de desenvolvimento necessárias:
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
Execute como um usuário sem privilégios.
./exploit
______ ______ ___ ___ ___ ____ ___________ _______
/ ___/ | / / __/___|_ |/ _ \|_ |/ __/____/ / < / __// __< /
/ /__ | |/ / _//___/ __// // / __// _ \/___/_ _/ / _ \/__ \/ /
\___/ |___/___/ /____/\___/____/\___/ /_//_/\___/____/_/
CVE-2026-41651 - PackageKit TOCTOU Local Privilege Escalation
═══════════════════════════════════════════════════════════════════
[*] Building packages...
[*] Starting race condition...
[*] Waiting for dispatch...
[*] Polling for payload...
[+] SUCCESS — privilege escalation completed
pkcon --version
Ou:
dpkg -l | grep packagekit
1.0.2 – 1.3.41.3.5 ou posteriorsudo apt update
sudo apt upgrade packagekit
Lançamentos oficiais:
Este repositório é fornecido estritamente para:
O autor não é responsável por qualquer uso indevido, atividade ilegal ou dano causado por este projeto.
Não use este software contra sistemas que você não possui ou para os quais não tem permissão explícita para testar.
| Bug | Localização | Descrição |
|---|
| BUG 1 | Linha 4036 | InstallFiles() sobrescreve flags e caminhos de transação em cache sem validação adequada de estado |
| BUG 2 | Linhas 876–881 | pk_transaction_set_state() rejeita silenciosamente transições de estado regressivas |
| BUG 3 | Linhas 2273–2277 | pk_transaction_run() lê flags em cache durante o despacho, em vez de na autorização |
| BYPASS | Linhas 2893–2900 | A flag SIMULATE (0x4) ignora as verificações de autorização do polkit |