> For the complete documentation index, see [llms.txt](https://beafn28.gitbook.io/beafn28/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://beafn28.gitbook.io/beafn28/cve-and-poc/poc-ingress-nginx-admission-controller-file-descriptor-injection-to-rce-varios-cve-asociados.md).

# PoC - Ingress-NGINX Admission Controller File Descriptor Injection to RCE (Varios CVE asociados)

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

### Resumen

Desarrollé una **Proof of Concept (PoC)** que demuestra una vulnerabilidad crítica de **Remote Code Execution (RCE)** en **Ingress-NGINX Admission Controller**, explotable mediante **File Descriptor Injection** a través del webhook de admisión.

La PoC demuestra que es posible abusar del manejo de descriptores de archivo (`/proc/<pid>/fd/`) para forzar la carga de una **biblioteca compartida maliciosa**, logrando la ejecución arbitraria de código en el contexto del controlador ingress-nginx.

El exploit fue verificado en un entorno Kubernetes real y publicado en **Exploit Database (EDB-ID 52475)**.

### Detalle técnico

* **Producto afectado:** Ingress-NGINX Admission Controller
* **Versiones afectadas:** v1.10.0 a v1.11.1 (potencialmente otras)
* **CVEs asociados:**
  * CVE-2025-1097
  * CVE-2025-1098
  * CVE-2025-24514
  * CVE-2025-1974
* **Componente vulnerable:** Admission Webhook
* **Tipo de vulnerabilidad:** File Descriptor Injection → Remote Code Execution
* **Tipo de ataque:** Remoto
* **Impacto:** Ejecución de código arbitrario y acceso a secretos del cluster

### Descripción de la PoC

La PoC demuestra que el Admission Controller de ingress-nginx puede ser forzado a procesar rutas arbitrarias bajo `/proc/<pid>/fd/`, permitiendo a un atacante interactuar con descriptores de archivo abiertos por el proceso.

Mediante una combinación de:

* Carga de una **biblioteca compartida maliciosa (.so)**,
* Manipulación de rutas internas usando `/proc`,
* Envío de peticiones especialmente construidas al webhook de admisión,

es posible provocar la **ejecución automática de código** cuando la biblioteca maliciosa es cargada en memoria.

La PoC incluye la generación dinámica de un `.so` que establece una reverse shell cuando es cargado por el proceso vulnerable.

### Comportamiento demostrado

* Fuerza bruta de descriptores de archivo válidos (`/proc/<pid>/fd/<n>`).
* Carga de una biblioteca compartida controlada por el atacante.
* Ejecución automática de código al cargarse la librería (`constructor`).
* Obtención de ejecución remota de comandos en el contexto del controlador.
* Potencial acceso a **Secrets del cluster Kubernetes**.

### Entorno de pruebas

* **Sistema operativo:** Ubuntu 22.04
* **Plataforma:** Kubernetes (RKE2)
* **Componente:** Ingress-NGINX Admission Controller v1.11.1
* **Herramientas empleadas:**
  * Python
  * requests
  * gcc
  * Kubernetes (cluster local)
* **Escenario:** Entorno de laboratorio / cluster controlado

### Impacto

Un atacante remoto podría explotar esta vulnerabilidad para:

* Ejecutar código arbitrario en el controlador ingress-nginx.
* Acceder a secretos del cluster (tokens, credenciales, certificados).
* Comprometer múltiples servicios expuestos a través del Ingress.
* Escalar el impacto a nivel de cluster Kubernetes completo.

El impacto es **crítico**, especialmente en despliegues donde el controlador tiene acceso amplio a recursos del cluster.

### Mitigaciones recomendadas

* Actualizar ingress-nginx a una versión corregida cuando esté disponible.
* Restringir el acceso de red al Admission Webhook.
* Aplicar políticas de NetworkPolicy estrictas.
* Ejecutar el controlador con permisos mínimos.
* Monitorizar accesos anómalos al webhook de admisión.
* Revisar configuraciones que permitan inyección de rutas internas.

### Referencias

* **Exploit Database:** <https://www.exploit-db.com/exploits/52475>
* **CVE-2025-24514:** <https://nvd.nist.gov/vuln/detail/CVE-2025-24514>
* **CVE-2025-1974:** <https://nvd.nist.gov/vuln/detail/CVE-2025-1974>
* **CVE-2025-1098**: <https://www.cve.org/CVERecord?id=CVE-2025-1098>
* **CVE-2025-1097**: <https://www.cve.org/CVERecord?id=CVE-2025-1097>
* **Ingress-NGINX GitHub:** <https://github.com/kubernetes/ingress-nginx>

{% 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 %}
