Skip to main content

Moodle CVE-2026-102581

| EUVDEUVD-2026-89720 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-09-30 fedora GHSA-g6pg-29qv-3h3r
5.4
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain authenticated forum-posting account
  2. Delivery
    Inject malicious script into forum post
  3. Exploit
    Victim opens affected discussion
  4. Execution
    Stored payload executes in victim browser
  5. Impact
    Steal 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Vendor (fedora) PRIMARY MEDIUM
NVD 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

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.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (fedora).

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
CVSS changed
Oct 01, 2026 - 15:22 NVD
4.6 (MEDIUM) 5.4 (MEDIUM)
CVE Published
Sep 30, 2026 - 08:36 cve.org
MEDIUM 4.6

DescriptionNVD

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

EPSS Score
0.2%
Top 94% exploitable
Prevalence
High
Moodle is one of the most widely deployed open-source LMS platforms in education
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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

cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:*
cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:*
cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:*
cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:*

More in Moodle

View all
CVE-2013-3630 MEDIUM POC
4.6 Nov 01

Moodle through 2.5.2 allows remote authenticated administrators to execute arbitrary programs by configuring the aspell

CVE-2021-21809 CRITICAL POC
9.1 Jun 23

A command execution vulnerability exists in the default legacy spellchecker plugin in Moodle 3.10. Rated critical severi

CVE-2024-43425 HIGH POC
8.1 Nov 07

A flaw was found in Moodle. Rated high severity (CVSS 8.1), this vulnerability is remotely exploitable, no authenticatio

CVE-2017-2641 CRITICAL POC
9.8 Mar 26

In Moodle 2.x and 3.x, SQL injection can occur via user preferences. Rated critical severity (CVSS 9.8), this vulnerabil

CVE-2025-34031 HIGH POC
7.5 Jun 24

The Moodle LMS Jmol plugin version 6.1 and earlier contains a path traversal vulnerability in jsmol.php. The query param

CVE-2013-4341 MEDIUM POC
4.3 Sep 16

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

CVE-2016-9187 HIGH POC
8.8 Nov 04

Unrestricted file upload vulnerability in the double extension support in the "image" module in Moodle 3.1.2 allows remo

CVE-2016-9186 HIGH POC
8.8 Nov 04

Unrestricted file upload vulnerability in the "legacy course files" and "file manager" modules in Moodle 3.1.2 allows re

CVE-2018-14630 HIGH POC
8.8 Sep 17

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

CVE-2018-1133 HIGH POC
8.8 May 25

An issue was discovered in Moodle 3.x. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, low a

CVE-2016-7919 HIGH POC
7.5 Oct 28

Moodle 3.1.2 allows remote attackers to obtain sensitive information via unspecified vectors, related to a "SQL Injectio

CVE-2021-47857 HIGH POC
7.2 Jan 21

Moodle 3.10.3 contains a persistent cross-site scripting vulnerability in the calendar event subtitle field that allows

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy