Miggo Logo

CVE-2025-3641:
Moodle has an authenticated remote code execution risk in the Moodle LMS Dropbox repository

8.8

CVSS Score
3.1

Basic Information

EPSS Score
0.44192%
Published
4/25/2025
Updated
4/25/2025
KEV Status
No
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
moodle/moodlecomposer< 4.1.184.1.18
moodle/moodlecomposer>= 4.3.0-beta, < 4.3.124.3.12
moodle/moodlecomposer>= 4.4.0-beta, < 4.4.84.4.8
moodle/moodlecomposer>= 4.5.0-beta, < 4.5.44.5.4

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability is described as a remote code execution risk due to unsafe deserialization in the Moodle Dropbox repository. The provided commit patch (27b839b5c60389623ca8e3496792b43a44527cd6) modifies the file 'repository/dropbox/lib.php'. In this file, three functions ('get_reference_details', 'fix_old_style_reference', and 'unpack_reference') were identified as using the potentially unsafe 'unserialize()' PHP function. The patch replaces these calls with 'unserialize_object()', which is a Moodle-specific function designed for safer deserialization by restricting allowed classes. The use of 'unserialize()' on data that could potentially be influenced by an authenticated user (teacher or manager, as per the description) is a common vector for PHP Object Injection, leading to RCE. Therefore, these three functions are identified as the vulnerable functions where the unsafe deserialization occurred. The class name 'repository_dropbox' is inferred from the file path and Moodle's typical naming conventions.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

* *l*w w*s *oun* in Moo*l*. * r*mot* *o** *x**ution risk w*s i**nti*i** in t** Moo*l* LMS *rop*ox r*pository. *y ****ult, t*is w*s only *v*il**l* to t*****rs *n* m*n***rs on sit*s wit* t** *rop*ox r*pository *n**l**.

Reasoning

T** vuln*r**ility is **s*ri*** *s * r*mot* *o** *x**ution risk *u* to uns*** **s*ri*liz*tion in t** Moo*l* *rop*ox r*pository. T** provi*** *ommit p*t** (****************************************) mo*i*i*s t** *il* 'r*pository/*rop*ox/li*.p*p'. In t*i