
Exploit local d'élévation de privilèges ciblant la condition de concurrence TOCTOU de PackageKit (CVE-2026-41651). Élève les privilèges d'un utilisateur non privilégié à root via un contournement de polkit et la manipulation d'état sur les systèmes Linux.
Exploit d'élévation locale de privilèges ciblant le démon PackageKit.
Élève les privilèges d'un utilisateur local non privilégié àrootvia une vulnérabilité de type condition de concurrence TOCTOU.
CVE-2026-41651 (également connue sous le nom de Pack2TheRoot) est une vulnérabilité critique de type condition de concurrence TOCTOU (Time-Of-Check to Time-Of-Use) dans PackageKit, un service système utilisé par de nombreuses distributions Linux pour l'abstraction de la gestion de paquets.
La vulnérabilité permet à un utilisateur local non privilégié de manipuler les états de transaction de PackageKit et de contourner les contrôles d'autorisation dans des conditions spécifiques.
Un attaquant disposant d'un accès local peut être en mesure de :
rootpolkit| Composant | Versions vulnérables | Version corrigée |
|---|---|---|
| PackageKit | 1.0.2 – 1.3.4 | 1.3.5 |
Le problème provient de plusieurs défauts logiques dans 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
Installez les bibliothèques de développement requises :
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
Exécutez en tant qu'utilisateur non privilégié.
./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 version ultérieuresudo apt update
sudo apt upgrade packagekit
Versions officielles :
Ce dépôt est fourni strictement pour :
L'auteur n'est pas responsable de toute utilisation abusive, activité illégale ou dommage causé par ce projet.
N'utilisez pas ce logiciel contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation explicite de tester.
| Bug | Emplacement | Description |
|---|
| BUG 1 | Ligne 4036 | InstallFiles() écrase les indicateurs et chemins de transaction mis en cache sans validation d'état appropriée |
| BUG 2 | Lignes 876–881 | pk_transaction_set_state() rejette silencieusement les transitions d'état rétrogrades |
| BUG 3 | Lignes 2273–2277 | pk_transaction_run() lit les indicateurs mis en cache lors du dispatch plutôt que lors de l'autorisation |
| BYPASS | Lignes 2893–2900 | L'indicateur SIMULATE (0x4) ignore les contrôles d'autorisation polkit |