# PoC - CVE-2023-4911 - glibc “Looney Tunables” Local Privilege Escalations

{% embed url="<https://www.exploit-db.com/exploits/52479>" %}

#### Resumen

Desarrollé una Proof of Concept (PoC) que demuestra una vulnerabilidad de escalada local de privilegios en GNU C Library (glibc), conocida como “Looney Tunables” y registrada como CVE-2023-4911. La vulnerabilidad se origina en un *buffer overflow* dentro del cargador dinámico (`ld.so`) al procesar la variable de entorno `GLIBC_TUNABLES`.

La PoC demuestra cómo, mediante la manipulación controlada de variables de entorno y la ejecución de binarios con bit SUID habilitado, es posible corromper el estado interno del cargador dinámico y forzar la ejecución de código con privilegios elevados.\
El exploit fue publicado y verificado en Exploit Database (EDB-ID 52479).

#### Detalle técnico

* **Producto afectado:** GNU C Library (glibc)
* **Versiones afectadas:** 2.34 hasta < 2.39
* **CVE:** CVE-2023-4911
* **Componente vulnerable:** Dynamic Loader (`ld.so`)
* **Vector de ataque:** Manipulación de la variable de entorno `GLIBC_TUNABLES`
* **Tipo de vulnerabilidad:** Heap-based Buffer Overflow / Out-of-bounds Write
* **Impacto:** Local Privilege Escalation (LPE)
* **Plataforma:** Linux

#### Descripción de la PoC

La PoC explota un desbordamiento de memoria en el procesamiento de `GLIBC_TUNABLES`, que permite sobrescribir estructuras internas del cargador dinámico.

El exploit realiza las siguientes acciones:

* Construcción de variables de entorno especialmente diseñadas para provocar el desbordamiento.
* Manipulación del estado del cargador dinámico.
* Alteración del comportamiento de carga de bibliotecas compartidas.
* Ejecución de un binario SUID (`/usr/bin/su`) con un entorno manipulado.
* Obtención de ejecución de código en contexto privilegiado (root).

La PoC incluye la generación de una versión modificada de `libc.so.6` con shellcode embebido, demostrando la posibilidad de control de flujo y ejecución arbitraria en sistemas vulnerables.

No requiere interacción del usuario ni acceso remoto: el vector es puramente local.

#### Comportamiento demostrado

* Corrupción de memoria en el cargador dinámico (`ld.so`).
* Control parcial de estructuras internas del proceso.
* Manipulación de carga de bibliotecas dinámicas.
* Ejecución de código con privilegios elevados.
* Escalada efectiva a root en entornos vulnerables.

#### Entorno de pruebas

* **Sistema operativo:** Ubuntu 22.04.3 LTS (x64)
* **Versión glibc:** 2.35-0ubuntu3.3
* **Arquitectura:** x86\_64
* **Escenario:** Laboratorio controlado

#### Impacto

Un atacante local con acceso al sistema puede:

* Escalar privilegios hasta root.
* Comprometer completamente la confidencialidad, integridad y disponibilidad del sistema.
* Realizar movimientos laterales en entornos multiusuario.
* Bypassear mecanismos de aislamiento basados únicamente en permisos estándar de usuario.

Dado que afecta al cargador dinámico del sistema, el impacto es crítico en entornos Linux vulnerables.

#### Mitigaciones recomendadas

* Actualizar glibc a versiones parcheadas (≥ 2.39 o versiones corregidas por el vendor).
* Aplicar parches de seguridad proporcionados por la distribución.
* Restringir el uso de binarios SUID innecesarios.
* Implementar controles de endurecimiento del sistema (hardening).
* Monitorizar ejecuciones anómalas de binarios privilegiados.

#### Referencias

* **Exploit Database:** <https://www.exploit-db.com/exploits/52479>
* **CVE Record:** <https://nvd.nist.gov/vuln/detail/CVE-2023-4911>

{% hint style="danger" %}
Esta PoC ha sido desarrollada únicamente con fines educativos y de investigación. No debe ejecutarse contra sistemas en producción ni sin autorización expresa. Seguir siempre prácticas de *responsible disclosure*.
{% endhint %}
