CVE-2024-38276: Moodle CSRF risks due to misuse of confirm_sesskey
5.4
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.36335%
CWE
Published
6/18/2024
Updated
8/4/2024
KEV Status
No
Technology
PHP
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| moodle/moodle | composer | >= 4.4.0-beta, < 4.4.1 | 4.4.1 |
| moodle/moodle | composer | >= 4.3.0-beta, < 4.3.5 | 4.3.5 |
| moodle/moodle | composer | >= 4.2.0-beta, < 4.2.8 | 4.2.8 |
| moodle/moodle | composer | < 4.1.11 | 4.1.11 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from improper CSRF token validation using confirm_sesskey() instead of require_sesskey(). The key differences are:
- confirm_sesskey() only throws an exception if sesskey is invalid but doesn't inherently stop execution
- require_sesskey() immediately terminates the request if validation fails
- Multiple patches (index.php, options.php) explicitly replace confirm_sesskey with require_sesskey in security-sensitive flows
- The CVE description explicitly cites 'misuse of confirm_sesskey' as the root cause
- Additional commits in related files (mod/assign/locallib.php) show similar patterns of hardening sesskey checks