GHSA-cgvv-3455-824j BIT-moodle-2025-53021 CVE-2025-53021
Moodle Session Fixation allows unauthenticated users to hijack sessions via sesskey parameter
- Severity
- 4.2 / 10
- Medium · CVSS 3.1
- Exploit chance (EPSS)
- 0.37%
- Chance of exploitation in the next 30 days. Higher than 30.89% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-384 Session Fixation
- Fix
4.0.0- Upgrade moodle/moodle to this version or later
Description
A session fixation vulnerability in Moodle 3.x through 3.11.18 allows unauthenticated attackers to hijack user sessions via the sesskey parameter. The sesskey can be obtained without authentication and reused within the OAuth2 login flow, resulting in the victim's session being linked to the attacker's. Successful exploitation results in full account takeover. According to the Moodle Releases page, "Bug fixes for security issues in 3.11.x ended 11 December 2023." NOTE: This vulnerability only affects products that are no longer supported by the maintainer.
Affected versions
Packagist
| Package | Vulnerable | Fixed in |
|---|---|---|
| moodle/moodle | >= 3.0.0, < 4.0.0 |
4.0.0 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
moodle/moodle Packagist → 4.0.0
- composer
composer require moodle/moodle:^4.0.0
Severity breakdown
CVSS 3.1 4.2
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N
- Attack vector
- Network
- Attack complexity
- High
- Privileges required
- None
- User interaction
- Required
- Scope
- Unchanged
- Confidentiality
- Low
- Integrity
- Low
- Availability
- None
Weakness
CWE-384: Session Fixation
Authenticating a user, or otherwise establishing a new user session, without invalidating any existing session identifier gives an attacker the opportunity to steal authenticated sessions.
How to prevent it
- Architecture and Design: Invalidate any existing session identifiers prior to authorizing a new user session.
- Architecture and Design: For platforms such as ASP that do not generate new values for sessionid cookies, utilize a secondary cookie. In this approach, set a secondary cookie on the user's browser to a random value and set a session variable to the same value. If the session variable and the cookie value ever don't match, invalidate the session, and force the user to log on again.
- Operation: Use an application firewall that can detect attacks against this weakness. It can be beneficial in cases in which the code cannot be fixed (because it is controlled by a third party), as an emergency prevention measure while more comprehensive software assurance measures are applied, or to provide defense in depth [REF-1481].
References
Advisories
Packages
Other links
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-cg8j-5cr2-568q Moodle TeX formula editor is vulnerable to DoS through lack of execution time limits | Medium | Also affects moodle/moodle |
| GHSA-ggxq-2mg9-8966 Moodle has a Remote Code Execution risk via file restore | High | Also affects moodle/moodle |
| GHSA-8jrv-wx83-w3xj Moodle Inserts Sensitive Information Into Sent Data | Medium | Also affects moodle/moodle |
| GHSA-hcm6-q6pc-xfhm Moodle has an authorization logic flaw | Critical | Also affects moodle/moodle |
| GHSA-vwhw-vp9v-q9c9 Moodle vulnerable to Cross-site Scripting | Medium | Also affects moodle/moodle |
| GHSA-5cx4-w4fh-fr57 Moodle Affected by Improper Restriction of Excessive Authentication Attempts | High | Also affects moodle/moodle |
| GHSA-qv78-6gpp-hm68 Moodle Open Redirect vulnerability | Medium | Also affects moodle/moodle |
| GHSA-qfh6-h7j6-fvjv Moodle formula injection vulnerability | High | Also affects moodle/moodle |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor