# PoC - CVE-2025-32023 (Redis) - Remote Code Execution (RCE)

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

### Resumen

Desarrollé una Proof of Concept (PoC) que demuestra una vulnerabilidad que puede derivar en **Remote Code Execution (RCE)** en **Redis**, explotable mediante operaciones de **HyperLogLog (HLL)** con una entrada especialmente manipulada que provoca una condición de **out-of-bounds write** (stack/heap) durante el procesamiento interno.

La PoC fue verificada y publicada en **Exploit Database (EDB-ID 52477)**. Esta entrada documenta el vector afectado, el enfoque de explotación y recomendaciones de mitigación.

### Detalle técnico

* **Producto afectado:** Redis
* **Versiones afectadas (según descripción pública):**
  * `>= 8.0.0` y `< 8.0.3`
  * (También se menciona impacto en ramas anteriores y correcciones en `7.4.5`, `7.2.10` y `6.2.19`)
* **CVE:** CVE-2025-32023
* **Componente / feature:** Operaciones **HyperLogLog (HLL)**
* **Técnica:** Payload binario manipulado para provocar **escritura fuera de límites** durante operaciones HLL
* **Precondición:** Usuario **autenticado** (capaz de ejecutar comandos HLL)
* **Impacto potencial:** Corrupción de memoria → posible **RCE**

### Descripción de la PoC

La PoC construye un payload **HYLL** (estructura interna de HyperLogLog) utilizando el modo **sparse**, generando múltiples “runs” tipo **xzero** con un tamaño concreto para forzar un desbordamiento en contadores/longitudes internas cuando Redis procesa el valor.

Flujo general:

1. Conexión a un servidor Redis accesible.
2. Escritura del payload HLL malformado en una key.
3. Disparo del procesado vulnerable mediante una operación HLL (p. ej. `PFCOUNT` con merge).

### Comportamiento demostrado

* Escritura de una estructura HLL malformada en Redis.
* Ejecución de una operación HLL que dispara el procesamiento del payload.
* Posible corrupción de memoria por **out-of-bounds write** (dependiendo de build/mitigaciones), con riesgo de:
  * crash,
  * comportamiento indefinido,
  * y **potencial ejecución de código**.

### Entorno de pruebas

* **Sistema:** Ubuntu 22.04
* **Redis:** versión vulnerable dentro del rango publicado (`8.0.2` en el PoC)
* **Herramientas empleadas:**
  * `redis-py` (cliente Python)
  * Python 3
* **Entorno:** laboratorio controlado

### Impacto

Un atacante autenticado podría explotar esta vulnerabilidad para:

* Provocar **corrupción de memoria** en el proceso Redis.
* Potencialmente derivar en **RCE**, comprometiendo:
  * **confidencialidad** (lectura de datos sensibles),
  * **integridad** (modificación de datos / ejecución de acciones),
  * **disponibilidad** (caídas del servicio).

### Mitigaciones recomendadas

* **Actualizar Redis** a una versión corregida:
  * `>= 8.0.3` (y/o ramas parcheadas `7.4.5`, `7.2.10`, `6.2.19`).
* Restringir mediante **ACL** el uso de comandos HLL:
  * bloquear `PFADD`, `PFCOUNT`, `PFMERGE` para usuarios no confiables.
* Segmentar y limitar el acceso a Redis:
  * no exponer el servicio a redes no confiables,
  * aplicar autenticación fuerte,
  * minimizar roles y permisos.
* Monitorizar y alertar ante patrones anómalos:
  * operaciones HLL repetitivas,
  * tamaños inusuales de valores en keys asociadas.

### Referencias

* **Exploit DB:** <https://www.exploit-db.com/exploits/52477>
* **CVE Record:** <https://nvd.nist.gov/vuln/detail/CVE-2025-32023>

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://beafn28.gitbook.io/beafn28/cve-and-poc/poc-cve-2025-32023-redis-remote-code-execution-rce.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
