module

Moodle Teacher Enrollment Privilege Escalation to RCE

Disclosed
Jul 20, 2020
Created
Oct 12, 2021

Description

Moodle version 3.9, 3.8 to 3.8.3, 3.7 to 3.7.6, 3.5 to 3.5.12 and earlier unsupported versions
allow for a teacher to exploit chain to RCE. A bug in the privileges system allows a teacher
to add themselves as a manager to their own class. They can then add any other users, and thus
look to add someone with manager privileges on the system (not just the class). After
adding a system manager, a 'loginas' feature is used to access their account. Next the system
is reconfigured to allow for all users to install an addon/plugin. Then a malicious theme
is uploaded and creates an RCE.

If all of that is a success, we revert permissions for managers to system default and
remove our malicoius theme. Manual cleanup to remove students from the class is required.

This module was tested against Moodle version 3.9

Authors

HoangKien1020
lanz
h00die

Platform

PHP

Architectures

php

Module Options

To display the available options, load the module within the Metasploit console and run the commands 'show options' or 'show advanced':


msf > use exploit/multi/http/moodle_teacher_enrollment_priv_esc_to_rce
msf exploit(moodle_teacher_enrollment_priv_esc_to_rce) > show targets
...targets...
msf exploit(moodle_teacher_enrollment_priv_esc_to_rce) > set TARGET < target-id >
msf exploit(moodle_teacher_enrollment_priv_esc_to_rce) > show options
...show and set options...
msf exploit(moodle_teacher_enrollment_priv_esc_to_rce) > exploit

Title
Rapid7 Labs

2026 Global Threat Landscape Report

The predictive window has collapsed. Exploitation follows disclosure in days. See how attackers are accelerating and how to stay ahead.