
PoC y documentación para CVE-2026-7275: Repositorio de Google Drive de Moodle (repository_googledocs) — Path Traversal / Escritura Arbitraria de Archivos que puede llevar a RCE en versiones no parcheadas de Moodle.
PoC y documentación para CVE-2026-7275: Moodle Google Drive Repository (repository_googledocs) — Path Traversal / Arbitrary File Write que puede conducir a RCE en versiones de Moodle sin parchear.
Disclaimer: Solo para investigación de seguridad autorizada, auditoría y educación defensiva. No lo utilice en sistemas sin permiso por escrito.
| Field | Value |
|---|---|
| CVE | CVE-2026-7275 |
| Advisory | MSA-26-0006 |
| Tracker | MDL-88423 |
| Componente | repository_googledocs |
| CWE | CWE-22 (Path Traversal) |
| Severity | Critical (CVSS ~9.1) |
| Afectadas | Moodle 5.1.0–5.1.3, 5.0.0–5.0.6, 4.5.0–4.5.10 |
| Corregido en | 5.1.4, 5.0.7, 4.5.11 |
El plugin de Google Drive en Moodle descarga archivos desde la API de Google usando los metadatos del nombre del archivo ($originalfile->name). Antes del parche, este nombre se pasaba a prepare_file() sin sanitización, por lo que un payload como ../../../../public/shell.php podía escribir archivos fuera del directorio temporal → posible RCE si el webroot ejecuta PHP.
No es necesario conocer la ruta absoluta — basta con un traversal relativo (../ repetido) desde la carpeta temporal aleatoria.
├── README.md ← resumen (este archivo)
├── CONTRIBUTORS.md ← 0xNuts + Cursor
├── EXPLOIT.md ← cadena de ataque, payload, requisitos previos
├── PATCH.md ← análisis del parche y mitigación
└── poc/
└── demo_path_traversal.py ← demo local pre-parche vs post-parche
python poc/demo_path_traversal.py
La salida muestra la ruta ESCAPE (pre-parche) vs contenida (post-parche).
// public/repository/lib.php — prepare_file()
return sprintf('%s/%s', make_request_directory(), clean_param($filename, PARAM_FILE));
Detalles completos: PATCH.md
| 0xNuts | @ExDev994 — investigador principal, PoC, documentación |
| Cursor | cursor.com — co-investigador, análisis estático, redacción del exploit y parche |
Detalle: CONTRIBUTORS.md
/*
* CVE-2026-7275 — romper para entender, parchear para defender.
* Contribuyentes: 0xNuts (@ExDev994) + Cursor
*/
| Requisito | Detalle |
|---|
| Cuenta de Moodle | Usuario autenticado |
| Capacidad | repository/googledocs:view |
| OAuth | Google Drive vinculado al usuario de Moodle |
| Plugin | repository_googledocs activo |
| Versión | Sin parche (< 5.1.4 / < 5.0.7 / < 4.5.11) |