Este repositorio muestra cómo explotar la vulnerabilidad CVE-2021-4034.
# CVE-2021-4034 (PwnKit) - Análisis y Explotación
Este repositorio contiene el código fuente para demostrar la explotación de la vulnerabilidad **CVE-2021-4034**, también conocida como **PwnKit**, descubierta en `pkexec` (parte del paquete Polkit). Esta falla permite una **escalada local de privilegios a root** mediante el uso de variables de entorno maliciosas.
---
## ⚠️ Advertencia
Este código se proporciona únicamente con **fines educativos y de investigación**. No debe ser utilizado en sistemas en producción ni sin autorización expresa. El uso indebido puede ser ilegal y va en contra de los términos de uso del autor.
---
## 🧠 Descripción técnica
La vulnerabilidad se presenta cuando `pkexec` es ejecutado sin argumentos, es decir, `argc == 0`. En este caso, `pkexec` intenta acceder a `argv[1]` sin comprobar que `argv[0]` exista, lo que provoca que lea desde `envp[0]`. Esto permite al atacante:
- Leer y sobrescribir variables del entorno como `GCONV_PATH`.
- Forzar la carga de una librería `.so` arbitraria para ejecutar código como root.
El exploit aprovecha esta condición para cargar una librería maliciosa que abre una shell como usuario root.
---
## 📁 Archivos del repositorio
- `cve-2021-4034.c`: Código fuente del exploit que invoca `pkexec` con `argv[] = {NULL}` y variables de entorno modificadas.
- `pwnkit.c`: Código fuente de la librería maliciosa que abre una shell como root.
---
## 🛠️ Compilación
```bash
gcc -Wall -o cve-2021-4034 cve-2021-4034.c
gcc -Wall -shared -fPIC -o pwnkit.so pwnkit.c
```
---
## 🧪 Instrucciones de uso (Preparación del entorno y ejecución)
```bash
mkdir GCONV_PATH=.
echo 'module UTF-8// PWNKIT// pwnkit 1' > gconv-modules
cp $(which true) GCONV_PATH=./pwnkit.so:.
./cve-2021-4034
Log in to view the POC file snapshot cached by Shenlong Bot
Log in to view