
Exploit de escalada de privilegios local que aprovecha la condición de carrera TOCTOU de PackageKit (CVE-2026-41651). Escala de usuario sin privilegios a root mediante bypass de polkit y manipulación de estado en sistemas Linux.
Exploit de escalada de privilegios local dirigido al demonio de PackageKit.
Escala desde un usuario local sin privilegios hastarootmediante una vulnerabilidad de condición de carrera TOCTOU.
CVE-2026-41651 (también conocida como Pack2TheRoot) es una vulnerabilidad crítica de condición de carrera TOCTOU (Time-Of-Check to Time-Of-Use) en PackageKit, un servicio del sistema utilizado por muchas distribuciones de Linux para la abstracción de la gestión de paquetes.
La vulnerabilidad permite a un usuario local sin privilegios manipular los estados de transacción de PackageKit y omitir las comprobaciones de autorización bajo condiciones específicas.
Un atacante con acceso local podría ser capaz de:
rootpolkit| Componente | Versiones Vulnerables | Versión Corregida |
|---|---|---|
| PackageKit | 1.0.2 – 1.3.4 | 1.3.5 |
El problema se origina a partir de múltiples fallos de lógica en 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
Instala las bibliotecas de desarrollo necesarias:
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
Ejecuta como un usuario sin privilegios.
./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
O:
dpkg -l | grep packagekit
1.0.2 – 1.3.41.3.5 o posteriorsudo apt update
sudo apt upgrade packagekit
Lanzamientos oficiales:
Este repositorio se proporciona estrictamente para:
El autor no es responsable de ningún uso indebido, actividad ilegal o daño causado por este proyecto.
No uses este software contra sistemas que no poseas o para los que no tengas permiso explícito de prueba.
| Bug | Ubicación | Descripción |
|---|
| BUG 1 | Línea 4036 | InstallFiles() sobrescribe los indicadores y rutas de transacción en caché sin una validación de estado adecuada |
| BUG 2 | Líneas 876–881 | pk_transaction_set_state() rechaza silenciosamente las transiciones de estado hacia atrás |
| BUG 3 | Líneas 2273–2277 | pk_transaction_run() lee los indicadores en caché durante el despacho en lugar de durante la autorización |
| BYPASS | Líneas 2893–2900 | El indicador SIMULATE (0x4) omite las comprobaciones de autorización de polkit |