Security announcements

MSA-25-0012: Hidden grades are shown to users without permission on some grade reports

by Michael Hawkins -

Insufficient capability checks in some grade reports resulted in some hidden grades being available to users who did not have permission to view them.

Severity/Risk: Minor
Versions affected: 4.5 to 4.5.2, 4.4 to 4.4.6, 4.3 to 4.3.10, 4.1 to 4.1.16 and earlier unsupported versions
Versions fixed: 4.5.3, 4.4.7, 4.3.11 and 4.1.17
Reported by: Ilya Tregubov
CVE identifier: CVE-2025-32045
Changes (main): http://git.moodle.org/gw?p=moodle.git&a=search&h=HEAD&st=commit&s=MDL-81945
Tracker issue: MDL-81945 Hidden grades are shown to users without permission on some grade reports

(Updated 3 April 2025 to add the CVE identifier.)

MSA-25-0011: Unauthenticated REST API user data exposure

by Michael Hawkins -

On some sites it was possible to retrieve data stored in the users table such as name, contact information and hashed passwords, via a stack trace returned by an API call.

IMPORTANT NOTE: Sites where PHP is configured with zend.exception_ignore_args = 'On' or zend.exception_ignore_args = 1 in the relevant php.ini file are NOT affected by this vulnerability.

Severity/Risk: Serious
Versions affected: 4.5 to 4.5.2
Versions fixed: 4.5.3
Reported by: Lucas Alonso
Workaround: Set zend.exception_ignore_args = 'On' in the php.ini file(s) used by your Moodle LMS instance, if that is not already configured. Note that this should remain configured even after the patch is applied.
CVE identifier: CVE-2025-32044
Changes (main): http://git.moodle.org/gw?p=moodle.git&a=search&h=HEAD&st=commit&s=MDL-84879
Tracker issue: MDL-84879 Unauthenticated REST API user data exposure

MSA-25-0011 Further Information

On 14th March 2025, the above-mentioned critical bug was reported in the Moodle LMS 4.5 REST API whereby, in certain situations and when an error occurs, user details may be exposed. After a prompt in-depth analysis of the report, the root cause was identified and a patch and supporting remediation instructions were quickly developed.

This issue may have exposed some sensitive user details, including name, e-mail address, hashed password, last login IP, and some metadata. Passwords in Moodle LMS are heavily salted and hashed, as well as peppered (if configured). SHA-512 hashing has been in use since Moodle LMS 4.3, and support for peppers, which further increase password security, was added in that same release.

It is important to note that only sites running Moodle LMS 4.5 (4.5.0, 4.5.1 or 4.5.2) and which do not have the zend.exception_ignore_args setting enabled, and are using the internal Moodle LMS authentication system, are affected by this vulnerability. We strongly recommend if your site may be affected, that you require a password reset for all users as a precaution, and consider setting up multi-factor authentication and password peppers if they are not already enabled.

Steps to confirm if your site is vulnerable (for site administrators)

  1. Check if you are running an affected version (4.5.x):
    • Log in as admin and navigate to Site administration > General > Notifications.
    • Check the current version at the bottom of the page. If you are running Moodle LMS versions 4.5.0, 4.5.1, or 4.5.2, your site may be vulnerable. Other versions are not affected.
  2. Check if PHP has zend.exception_ignore_args is disabled:
    • Log in as admin and navigate to Site administration > Server > PHP Info.
    • Search for zend.exception_ignore_args.
    • If the value is off, you are susceptible to the issue. If it is on (set to 'On' or 1), you are not susceptible.
    • If you are not able to access the PHP Info screen, on your webserver you will need to check if your php.ini configuration contains: zend.exception_ignore_args = 'On' or zend.exception_ignore_args = 1. If neither of those are included, you are susceptible.

Steps if your site is affected

  1. Immediately configure zend.exception_ignore_args = 'On' in your PHP configuration. This should remain on even after the patch is applied.
  2. Apply the patch as soon as you are able to.
  3. Consider forcing all users to change their passwords, which can be achieved via the force password change option in Bulk user actions.
  4. If you wish, also enable Multi-Factor Authentication and password peppers.

(Updated 3 April 2025 to add the CVE identifier.)

MSA-25-0010: SQL injection risk in course search module list filter

by Michael Hawkins -

An SQL injection risk was identified in the module list filter within course search.

Severity/Risk: Serious
Versions affected: 4.5 to 4.5.1, 4.4 to 4.4.5, 4.3 to 4.3.9, 4.1 to 4.1.15 and earlier unsupported versions
Versions fixed: 4.5.2, 4.4.6, 4.3.10 and 4.1.16
Reported by: Lars Bonczek
CVE identifier: CVE-2025-26533
Changes (main): http://git.moodle.org/gw?p=moodle.git&a=search&h=HEAD&st=commit&s=MDL-84271
Tracker issue: MDL-84271 SQL injection risk in course search module list filter

MSA-25-0009: Teachers can evade trusttext config when restoring glossary entries

by Michael Hawkins -

Additional checks were required to ensure trusttext is applied (when enabled) to glossary entries being restored.

Severity/Risk: Minor
Versions affected: 4.5 to 4.5.1, 4.4 to 4.4.5, 4.3 to 4.3.9, 4.1 to 4.1.15 and earlier unsupported versions
Versions fixed: 4.5.2, 4.4.6, 4.3.10 and 4.1.16
Reported by: Paul Holden
CVE identifier: CVE-2025-26532
Changes (main): http://git.moodle.org/gw?p=moodle.git&a=search&h=HEAD&st=commit&s=MDL-84003
Tracker issue: MDL-84003 Teachers can evade trusttext config when restoring glossary entries

MSA-25-0008: IDOR in badges allows disabling of arbitrary badges

by Michael Hawkins -

Insufficient capability checks made it possible to disable badges a user does not have permission to access.

Severity/Risk: Minor
Versions affected: 4.5 to 4.5.1, 4.4 to 4.4.5, 4.3 to 4.3.9, 4.1 to 4.1.15 and earlier unsupported versions
Versions fixed: 4.5.2, 4.4.6, 4.3.10 and 4.1.16
Reported by: Paul Holden
CVE identifier: CVE-2025-26531
Changes (main): http://git.moodle.org/gw?p=moodle.git&a=search&h=HEAD&st=commit&s=MDL-84239
Tracker issue: MDL-84239 IDOR in badges allows disabling of arbitrary badges

MSA-25-0007: Upgrade RequireJS including security fix (upstream)

by Michael Hawkins -

The upstream RequireJS library was upgraded, which included a security fix.

Severity/Risk: Minor
Versions affected: 4.5 to 4.5.1, 4.4 to 4.4.5, 4.3 to 4.3.9, 4.1 to 4.1.15 and earlier unsupported versions
Versions fixed: 4.5.2, 4.4.6, 4.3.10 and 4.1.16
Reported by: Paola Maneggia
CVE identifier: CVE-2024-38999 (upstream)
Changes (main): http://git.moodle.org/gw?p=moodle.git&a=search&h=HEAD&st=commit&s=MDL-84023
Tracker issue: MDL-84023 Upgrade RequireJS including security fix (upstream)

MSA-25-0006: Reflected XSS via question bank filter

by Michael Hawkins -

The question bank filter required additional sanitizing to prevent a reflected XSS risk.

Severity/Risk: Serious
Versions affected: 4.5 to 4.5.1, 4.4 to 4.4.5 and 4.3 to 4.3.9
Versions fixed: 4.5.2, 4.4.6 and 4.3.10
Reported by: Hect0r
CVE identifier: CVE-2025-26530
Changes (main): http://git.moodle.org/gw?p=moodle.git&a=search&h=HEAD&st=commit&s=MDL-84146
Tracker issue: MDL-84146 Reflected XSS via question bank filter

MSA-25-0005: Stored XSS risk in admin live log

by Michael Hawkins -

Description information displayed in the site administration live log required additional sanitizing to prevent a stored XSS risk.

Severity/Risk: Serious
Versions affected: 4.5 to 4.5.1, 4.4 to 4.4.5, 4.3 to 4.3.9, 4.1 to 4.1.15 and earlier unsupported versions
Versions fixed: 4.5.2, 4.4.6, 4.3.10 and 4.1.16
Reported by: nightbloodz
CVE identifier: CVE-2025-26529
Changes (main): http://git.moodle.org/gw?p=moodle.git&a=search&h=HEAD&st=commit&s=MDL-84145
Tracker issue: MDL-84145 Stored XSS risk in admin live log

MSA-25-0004: Stored XSS in ddimageortext question type

by Michael Hawkins -

The drag-and-drop onto image (ddimageortext) question type required additional sanitizing to prevent a stored XSS risk.

Severity/Risk: Minor
Versions affected: 4.5 to 4.5.1, 4.4 to 4.4.5, 4.3 to 4.3.9, 4.1 to 4.1.15 and earlier unsupported versions
Versions fixed: 4.5.2, 4.4.6, 4.3.10 and 4.1.16
Reported by: Vincent Schneider (cli-ish)
CVE identifier: CVE-2025-26528
Changes (main): http://git.moodle.org/gw?p=moodle.git&a=search&h=HEAD&st=commit&s=MDL-82896
Tracker issue: MDL-82896 Stored XSS in ddimageortext question type

MSA-25-0003: Non-searchable tags can still be discovered on the tag search page and in the tags block

by Michael Hawkins -

Tags not expected to be visible to a user could still be discovered by them via the tag search page or in the tags block.

Severity/Risk: Minor
Versions affected: 4.5 to 4.5.1, 4.4 to 4.4.5, 4.3 to 4.3.9, 4.1 to 4.1.15 and earlier unsupported versions
Versions fixed: 4.5.2, 4.4.6, 4.3.10 and 4.1.16
Reported by: Marina Glancy
CVE identifier: CVE-2025-26527
Changes (main): http://git.moodle.org/gw?p=moodle.git&a=search&h=HEAD&st=commit&s=MDL-83941
Tracker issue: MDL-83941 Non-searchable tags can still be discovered on the tag search page and in the tags block