Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2021-4034 PoC — polkit 缓冲区错误漏洞

Source
Associated Vulnerability
Title:polkit 缓冲区错误漏洞 (CVE-2021-4034)
Description:A local privilege escalation vulnerability was found on polkit's pkexec utility. The pkexec application is a setuid tool designed to allow unprivileged users to run commands as privileged users according predefined policies. The current version of pkexec doesn't handle the calling parameters count correctly and ends trying to execute environment variables as commands. An attacker can leverage this by crafting environment variables in such a way it'll induce pkexec to execute arbitrary code. When successfully executed the attack can cause a local privilege escalation given unprivileged users administrative rights on the target machine.
Description
Este repositorio muestra cómo explotar la vulnerabilidad CVE-2021-4034.
Readme
# 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
File Snapshot

[4.0K] /data/pocs/f80d94e4b75fcef8dfa3b8b293e9fdee58e88c31 ├── [ 292] cve-2021-4034.c ├── [ 36] gconv-modules ├── [ 298] pwnkit.c └── [1.8K] README.md 0 directories, 4 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →