Menú

Ejecución remota de código mediante PHP en Moodle (CVE-2018-14630)

Moodle es una popular plataforma educativa de código abierto que permite a los educadores crear y gestionar tanto usuarios como cursos de modalidad e-learning. Además, proporciona herramientas para la comunicación entre formadores y alumnos.

Existe un error al importar un cuestionario de tipo ‘arrastrar y soltar en el texto’ (ddwtos) en formato XML, debido a una falta de comprobación en una función ‘unserialize’. Esto podría causar una inyección de objetos PHP y conducir a una ejecución remota de código arbitrario.

Es necesario disponer de permisos para crear un cuestionario o importar preguntas para poder aprovechar esta vulnerabilidad. Aunque estos permisos los tienen los profesores, cabe destacar que es posible asignar el rol de ‘profesor’ un usuario ‘estudiante’ para un determinado curso, con lo cual estaría en posición de explotar este error.

Ejecución remota de código a través de PHP unserialize

Para explotar este problema, un atacante tiene que abrir el banco de preguntas de Moodle para un curso específico e importar el siguiente archivo XML de Moodle. La respuesta de respuesta contiene una cadena de objetos PHP sofisticada que solo contiene objetos de la biblioteca de Moodles. Después del proceso de análisis, se ejecuta el comando “echo ‘whoami'”.

Además, una plataforma Moodle también podría verse afectada de manera no intencionada si se importan cuestionarios o preguntas desde fuentes que no son de confianza.

Esta vulnerabilidad, identificada como CVE-2018-14630, ha sido descubierta por Johannes Moritz. Ha sido catalogada como seria por la propia plataforma y afecta a todas las versiones anteriores a las siguientes:

Se ha probado la siguiente versión, que fue la más reciente al momento de la prueba:

  • 3.5.1

Según el proveedor, todas las versiones anteriores también se ven afectadas:

  • 3.5 a 3.5.1
  • 3.4 a 3.4.4
  • 3.1 a 3.1.13 y versiones anteriores no compatibles

SOLUCIÓN