Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain authenticated forum-posting account
-
DeliveryInject malicious script into forum post
-
ExploitVictim opens affected discussion
-
ExecutionStored payload executes in victim browser
-
ImpactSteal session or act as victim
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated Moodle account with permission to create forum posts (PR:L) - typically any enrolled student or participant - because the payload is stored via a forum post. Execution additionally requires a second user to view the affected forum post (UI:R), so the attack is not self-contained and depends on victim interaction. The flaw is in the templates that render forum posts, so it affects standard forum functionality rather than a non-default feature; any Moodle instance running the forum module and an unpatched version is exposed. Limiting factors: authentication, required victim viewing action, and impact confined to the victim's browser session (partial confidentiality/integrity, no availability). |
| Impact | This is a genuine but moderate-severity issue, not an urgent one. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N, base 4.6) accurately reflects a stored XSS that requires an authenticated forum-posting account (PR:L) and a victim who views the malicious post (UI:R), with limited confidentiality and integrity impact and no availability impact. There is no EPSS score, no CISA KEV listing, and no public exploit provided, so exploitation status is: no public exploit identified at time of analysis. No SSVC decision data was supplied. The one signal-conflict worth flagging: the vendor scored scope as unchanged (S:U), but stored XSS that runs in another user's authenticated session arguably crosses a security boundary (S:C), which would raise the score - I reflect this in my own assessment below. Overall this is a real-priority-but-low-urgency defect: widely deployed platform (Moodle) but constrained by authentication, required victim interaction, and only partial C/I impact. It should be patched on a normal cadence rather than emergency-escalated. |
| Exploit ScenarioDerived | An attacker with a normal authenticated Moodle account (e.g., an enrolled student) crafts a forum post containing malicious markup that the forum-display templates fail to escape. When a teacher or another student opens the discussion, the injected JavaScript executes in their browser under their Moodle session, allowing session-token theft, CSRF-style actions, or content manipulation. No public proof-of-concept is provided. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 30, 2026
Stored cross-site scripting in Moodle's forum post rendering templates allows an authenticated user with forum posting rights - typically any enrolled student or participant - to embed malicious markup in a forum post that executes in the browser of another user who views that post. Exploitation requires a valid low-privileged account (CVSS PR:L) plus victim interaction (UI:R), so it is not self-contained and depends on a second user opening the affected discussion; impact is confined to the victim's browser session, with partial confidentiality and integrity loss and no availability impact (moderate severity, CVSS 3.1 base 4.6). There is no confirmed active exploitation (not in CISA KEV) and no public exploit code identified at time of analysis, but upstream fix commits referencing MDL-88981 are already public, which lowers the effort needed to reproduce the issue.
RemediationAI
Apply the upstream Moodle fix for MDL-88981 (referenced via the Moodle git commit search link) or upgrade to the patched release for your Moodle branch once it is published; because the patch reference is a commit-level fix rather than a confirmed tagged release, verify against the Moodle advisory at https://moodle.org/mod/forum/discuss.php?d=482499 and the Red Hat tracking entries (https://bugzilla.redhat.com/show_bug.cgi?id=2543634 and https://access.redhat.com/security/cve/CVE-2026-102581) before treating your instance as remediated. If an immediate upgrade is not possible, reduce exposure by temporarily restricting forum posting to trusted roles or limiting enrolment of untrusted users, and consider disabling or read-only-ing forum activity on internet-exposed instances via each forum's permissions - the trade-off is loss of a core collaborative feature for legitimate users. Administrators should also force re-authentication/rotate active sessions after applying the fix, since a previously stored payload could still be dispatched to users loading cached unpatched pages. Additional compensating controls include deploying a Content-Security-Policy that disallows inline script on Moodle pages and fronting the site with a WAF running XSS rules, though both are bypassable and should be treated as containment, not a fix.
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 is CWE-79 (Improper Neutralization of Input During Web Page Generation / cross-site scripting) arising specifically from insufficient output escaping in the Moodle template layer used to render forum posts. Moodle's forum module stores user-submitted post content in the database and re-serves it to every other user who reads the thread; because the rendering template fails to contextually escape that stored content, attacker-supplied markup is emitted into the HTML of the discussion page and interpreted by the victim's browser as executable script. This is the classic stored (persistent) XSS pattern: input validation is not the fix here - the payload is already persisted - so remediation lies in correct output encoding/escaping at the template level. The affected surface is stock forum functionality enabled on essentially every Moodle deployment, rather than an optional or non-default feature, which broadens exposure across versions even though the per-attack impact is scoped to a single victim's session (the session cookie/token, page content, and any actions the victim can perform, including privileged actions if an administrator views the post).
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:R/S:C/C:L/I:L/A:N
Network-reachable stored XSS needing a low-privileged posting account (PR:L) and victim viewing (UI:R); I set S:C because injected script executes in another user's authenticated context, crossing a security boundary.
Primary rating from Vendor (fedora).
CVSS VectorNVD
Lifecycle Timeline
2DescriptionNVD
A flaw was found in Moodle. Insufficient output escaping in templates used to display forum posts enables a stored cross-site scripting (XSS) vulnerability. An attacker can inject malicious content into a forum post, which then executes arbitrary script code in the browser of another user viewing the affected post.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
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-89720
GHSA-g6pg-29qv-3h3r
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB