Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as user with Report Builder access
-
DeliveryCraft report audience with malicious class name
-
ExploitBypass audience class-name validation
-
ExecutionTrigger arbitrary class instantiation
-
ImpactCreate unintended internal objects altering app behavior
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V15 - Secure Coding and Architecture Reflection safety, class allowlisting
|
| Exploitation Conditions | Exploitation requires an authenticated Moodle account that holds the capability to create or manage Report Builder audiences (the flaw lives in the Report Builder component's audience-class handling), so ordinary students or self-registered users cannot reach it - this is the PR:H limiter. The attacker must additionally supply a class name that defeats the component's audience-class validation and instantiates into something with effect, which the vendor rates as high complexity (AC:H). No user interaction by a victim is needed (UI:N), and the vector is network-reachable via the normal Moodle web interface, but the realistic risk is bounded to sites where semi-privileged report authors are untrusted. Impact is limited to integrity (unexpected internal objects / application behavior); no confidentiality or availability effect is described. |
| Impact | This is a low-real-risk issue despite being a code-instantiation flaw. The provided CVSS 3.1 vector (AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:L/A:N = 2.2 Low) is internally consistent and credible: exploitation requires high privileges (PR:H - access to Report Builder audience configuration, a capability normally held by managers/course creators, not ordinary users), high attack complexity (AC:H - the attacker must find a class-name value that both bypasses Moodle's audience allowlist validation and instantiates into something meaningful), and yields only limited integrity impact (I:L) with no confidentiality or availability loss. There is no EPSS score, no CISA KEV listing, and no public proof-of-concept in the provided data; exploitation status is therefore 'no public exploit identified at time of analysis.' No SSVC decision data was supplied. The CWE-470 (unsafe reflection / arbitrary class instantiation) classification does raise the theoretical ceiling - reflection flaws can sometimes escalate to object-injection or RCE - but the description explicitly limits the outcome to 'unauthorized creation of internal program objects' and 'unexpected application behavior,' and both NVD and the vendor scored it as merely I:L with no RCE claim. No signals conflict; every indicator (privileged access, high complexity, minimal impact, no exploitation evidence) points the same direction: real but very low priority. One caveat: the reported CWE-470 and the input Tag 'Authentication Bypass' disagree - the tag mischaracterizes an unsafe-reflection integrity bug. |
| Exploit ScenarioDerived | An authenticated Moodle user who already holds Report Builder audience-management privileges crafts a report and supplies a malicious, non-whitelisted PHP class name as the audience class. Because the class name is instantiated without proper validation, the platform constructs an unintended internal object, producing unexpected application state or behavior. No public exploit code is available, and the high privilege requirement means the attacker must already be a trusted report author. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 30, 2026
Authenticated Moodle users who hold Report Builder audience-management permissions can abuse an improperly validated audience class name to instantiate arbitrary internal PHP classes, producing unexpected internal objects and altered application behavior (CWE-470, unsafe reflection). The vendor and independent assessment both rate real-world risk as low: the assessed vector is CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:L/A:N (score 2.2), because reaching the flaw requires a semi-privileged authenticated account able to create or manage Report Builder audiences, and the attack is rated high complexity with no victim interaction. Impact is bounded to integrity - no confidentiality or availability effect is described - and no public exploit code or confirmed active exploitation was identified at time of analysis.
RemediationAI
Apply the upstream fix tracked as Moodle MDL-89078: the change is referenced in Moodle's git history (searchable at http://git.moodle.org/gw?p=moodle.git&a=search&h=HEAD&st=commit&s=MDL-89078), so upgrade to the maintenance release for your Moodle branch that contains that commit - the status is best described as 'Upstream fix available (PR/commit); released patched version not independently confirmed', meaning you should confirm the fixed version number in Moodle's advisory at https://moodle.org/mod/forum/discuss.php?d=482498 before upgrading, and Fedora users should follow https://access.redhat.com/security/cve/CVE-2026-102580 and https://bugzilla.redhat.com/show_bug.cgi?id=2543635 for the packaged rebuild. If you cannot patch immediately, the highest-value compensating control is to remove or tighten the Report Builder audience/report management capabilities from all roles except fully trusted administrators via Site administration > Users > Permissions > Define roles, which eliminates the semi-privileged insider population the PR:H prerequisite depends on; the trade-off is that legitimate report authors lose the ability to create or edit audiences and will need admin-mediated changes. As a stronger but more disruptive measure, disable or uninstall the Report Builder functionality (or block access to its report/audience editing endpoints via web server rules for non-admin roles) until the patch is applied - this breaks custom reporting entirely for affected users. Finally, audit role assignments and Moodle web logs for unexpected audience-creation or class-instantiation activity by non-admin accounts, since detecting the exploit requires reviewing who exercised Report Builder audience management, not just HTTP error codes.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause class is CWE-470, 'Use of Externally-Controlled Input to Select Classes or Code' (unsafe reflection). Moodle's Report Builder lets report authors define audiences, and audience definitions reference a class name that the component resolves and instantiates at runtime. Because the audience class name is not properly validated against an allow-list of expected audience types, PHP's dynamic class instantiation and autoloading can be steered toward other loaded or autoloadable classes within the Moodle codebase, creating internal program objects outside the component's intended contract. This is a classic reflection/serialization-adjacent weakness: the flaw is not memory corruption or remote code execution in itself, but unintended object construction whose downstream effects depend on which classes are reachable and how their constructors or side effects behave - hence the vendor's integrity-only, high-complexity rating (AC:H) rather than a higher-severity classification. The issue was tracked upstream under Moodle tracker issue MDL-89078, and Red Hat separately assigned CVE-2026-102580 (Red Hat Bugzilla 2543635) because Fedora packages Moodle. No CPE strings were supplied with the intelligence feed, so the exact affected branch/version matrix must be confirmed from Moodle's own advisory (forum discussion d=482498); the vulnerable surface is the Report Builder component present in modern Moodle 4.x-style releases that ship this subsystem.
Know when Moodle gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
Report Builder audience management needs elevated capability (PR:H) and a validation-bypassing class name is non-trivial (AC:H); impact is limited to integrity (I:L) with no C or A effect.
Primary rating from Vendor (fedora).
CVSS VectorNVD
Lifecycle Timeline
3DescriptionNVD
A flaw was found in Moodle. An authenticated attacker can supply an improperly validated audience class name to the Report Builder component, allowing arbitrary class instantiation. This vulnerability enables the unauthorized creation of internal program objects, which may result in unexpected application behavior.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Affected Products (CPE)NVD
Moodle through 2.5.2 allows remote authenticated administrators to execute arbitrary programs by configuring the aspell
A command execution vulnerability exists in the default legacy spellchecker plugin in Moodle 3.10. Rated critical severi
A flaw was found in Moodle. Rated high severity (CVSS 8.1), this vulnerability is remotely exploitable, no authenticatio
In Moodle 2.x and 3.x, SQL injection can occur via user preferences. Rated critical severity (CVSS 9.8), this vulnerabil
The Moodle LMS Jmol plugin version 6.1 and earlier contains a path traversal vulnerability in jsmol.php. The query param
Multiple cross-site scripting (XSS) vulnerabilities in Moodle through 2.2.11, 2.3.x before 2.3.9, 2.4.x before 2.4.6, an
Unrestricted file upload vulnerability in the double extension support in the "image" module in Moodle 3.1.2 allows remo
Unrestricted file upload vulnerability in the "legacy course files" and "file manager" modules in Moodle 3.1.2 allows re
moodle before versions 3.5.2, 3.4.5, 3.3.8, 3.1.14 is vulnerable to an XML import of ddwtos could lead to intentional re
An issue was discovered in Moodle 3.x. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, low a
Moodle 3.1.2 allows remote attackers to obtain sensitive information via unspecified vectors, related to a "SQL Injectio
Moodle 3.10.3 contains a persistent cross-site scripting vulnerability in the calendar event subtitle field that allows
EUVD-2026-89719
GHSA-xw58-hp5c-6wc2
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB