# PoC- CVE-2025-4123 - SSRF / XSS via Open Redirect (Grafana)

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

#### Resumen

Desarrollé una Proof of Concept (PoC) que demuestra una vulnerabilidad de **Server-Side Request Forgery (SSRF)** combinada con **Cross-Site Scripting (XSS)** en **Grafana**, registrada como **CVE-2025-4123**.

La vulnerabilidad se origina en una combinación de **path traversal en cliente** y un **open redirect** en endpoints públicos como `/render/public`, lo que permite redirigir peticiones del servidor hacia destinos controlados por el atacante.

La PoC demuestra cómo, bajo ciertas configuraciones (acceso anónimo habilitado o uso de plugins vulnerables como *Image Renderer*), es posible forzar al servidor a realizar peticiones arbitrarias, facilitando SSRF y potencial filtrado de información.

El exploit fue publicado y verificado en Exploit Database (**EDB-ID 52491**).

#### Detalle técnico

* **Producto afectado:** Grafana
* **Versiones afectadas:** 11.2.0 – 11.6.0 (y ramas específicas previas)
* **CVE:** CVE-2025-4123
* **Componente vulnerable:** Endpoints `/render/public` y `/public`
* **Vector de ataque:** Open Redirect + Path Traversal (client-side)
* **Tipo de vulnerabilidad:** SSRF / XSS
* **CWE:** CWE-79, CWE-601
* **Impacto:** SSRF, robo de información, ejecución de JS en cliente
* **Plataforma:** Web

#### Descripción de la PoC

La PoC explota una validación insuficiente en rutas públicas de renderizado, permitiendo construir URLs manipuladas que provocan redirecciones hacia dominios controlados por el atacante.

El exploit realiza las siguientes acciones:

* Uso de encoding doble (`%252f`, `%255c`) para evadir validaciones
* Path traversal en rutas públicas
* Abuso de redirecciones abiertas (`redirect_to`)
* Forzado de peticiones del servidor hacia dominios externos
* Interacción con servicios internos mediante SSRF

En presencia del plugin **Grafana Image Renderer**, el impacto puede escalar a SSRF completo con capacidad de lectura.

#### Comportamiento demostrado

* SSRF hacia dominios controlados por el atacante
* Interacción con servicios internos (loopback / red interna)
* Posible exfiltración de información
* Redirección maliciosa de usuarios
* Ejecución de JavaScript en escenarios XSS (limitado por CSP por defecto)

#### Entorno de pruebas

* **Aplicación:** Grafana
* **Versiones:** 11.2.0 – 11.6.0
* **Configuración:** Acceso anónimo habilitado / plugins activos
* **Escenario:** Laboratorio controlado

#### Impacto

Un atacante remoto puede:

* Forzar al servidor a realizar peticiones arbitrarias (SSRF)
* Acceder a recursos internos no expuestos
* Exfiltrar información sensible
* Redirigir usuarios a contenido malicioso
* Ejecutar XSS en determinadas condiciones

El impacto varía según configuración, pero puede escalar significativamente en entornos mal configurados.

#### Mitigaciones recomendadas

* Actualizar Grafana a versiones parcheadas
* Restringir acceso a endpoints públicos de renderizado
* Deshabilitar acceso anónimo si no es necesario
* Validar correctamente redirecciones y rutas
* Limitar capacidades de plugins como Image Renderer
* Aplicar políticas de red (egress filtering

#### Referencias

* **Exploit:** <https://www.exploit-db.com/exploits/52491>
* **CVE:** <https://nvd.nist.gov/vuln/detail/CVE-2025-4123>

{% 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-4123-ssrf-xss-via-open-redirect-grafana.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.
