Description
The Academy LMS – AI Course Builder, Quizzes, Certificates & eLearning plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 4.0.3. This is due to the `add_child()` function calling `add_role('academy_student')` on any existing account resolved from the attacker-supplied `email` parameter before `Store::link()` validates the guardian-ward relationship, and failing to roll back that role write when `Store::link()` returns a `WP_Error`. This makes it possible for authenticated attackers with the `academy_guardian` role or higher to elevate any existing WordPress account — including their own — to the `academy_student` role, gaining `edit_posts` (Contributor-equivalent) capabilities and, when the student file-upload setting is enabled, `upload_files` (Author-equivalent) capabilities not granted to the guardian role. When a guardian supplies their own email address, `email_exists()` resolves to their own user ID, causing `Store::link()` to reject the self-link, but because the `add_role()` call has already executed and is never reversed, the academy_student role grant on their own account persists permanently.
Published: 2026-10-10
Score: 5.4 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Privilege Escalation
Action: Patch Immediately
AI Analysis

Impact

The Academy LMS plugin contains a flaw in the add_child() REST endpoint that grants the academy_student role to any WordPress user identified by an email address supplied to the endpoint. The role is added before the plugin verifies the guardian-ward relationship and before the Store::link() call can roll back the assignment when an error occurs. Because the add_role() call is never undone, an authenticated attacker who holds the academy_guardian role—or a higher role—can elevate any existing account, including their own, to academy_student, acquiring edit_posts capabilities. If the plugin’s student file‑upload setting is enabled, the attacker also receives upload_files rights, effectively granting author‑level file upload privileges. The flaw can persist after a self‑link rejection, allowing a guardian to permanently raise their own role. The vulnerability is a CWE‑269 Access Control issue and can be exploited through a standard authenticated request to the add_child endpoint with an arbitrary email address. It does not enable arbitrary code execution or broader system compromise outside WordPress. Risk and exploitability analysis shows a CVSS score of 5.4, indicating moderate severity. No EPSS data is available, and the vulnerability is not listed in the CISA KEV catalog, suggesting limited observed exploitation. However, the attack requires only legitimate authentication and routine REST access, conditions commonly available to site administrators. Once exploited, the attacker can gain contributor‑level editing rights and, if file uploading is enabled, author‑level upload rights, facilitating potential content manipulation or malicious file placement. Affected systems are all WordPress installations running Academy LMS version 4.0.3 or earlier, authored by kodezen. Any site that has installed the plugin and has users with the academy_guardian role or higher is potentially vulnerable, especially if the student file‑upload configuration is enabled. The risk is moderate but significant due to the privilege escalation within WordPress; prompt patching mitigates the issue entirely. Risk and exploitability: The flaw can be exploited by any authenticated guardian through the documented restore_endpoint, which exposes a single REST route. No additional external access or code execution is required. The CVSS base score of 5.4 reflects the impact on confidentiality, integrity, and availability confined to application-level permissions. The lack of EPSS and KEV status indicates no widespread exploitation yet, but the ease of exploitation warrants immediate attention. Affected systems: WordPress sites using Academy LMS 4.0.3 or earlier, with users assigned the academy_guardian role or higher. The vulnerability affects all accounts that can be referenced via the email parameter, including the attacker’s own account. Risk and exploitability: Moderately high due to easy authenticated access and lack of rollback logic, but the impact is limited to WordPress privileges. The CVSS score of 5.4 and the absence of EPSS data suggest moderate threat. Since the flaw is not on the CISA KEV list, it may not be widely exploited yet, but any authenticated guardian can exploit the REST endpoint to elevate privileges. The exploitation path is straightforward: send a POST request to add_child with an email argument. No additional conditions are needed, and the issue persists after a self-link denial because of the missing rollback.

Affected Systems

All WordPress installations that have the Academy LMS plugin by kodezen version 4.0.3 or earlier are affected. Any site that has installed the plugin and has users with the academy_guardian role or higher is potentially vulnerable, particularly if the student file‑upload configuration is enabled. The vulnerability applies to any WordPress account that can be referenced by email within the add_child endpoint.

Risk and Exploitability

CVSS score 5.4 indicates moderate severity. EPSS data is unavailable; KEV status is not listed, implying no known exploitation in the wild. The flaw is exploitable by any authenticated guardian through the add_child REST endpoint, which requires only standard authenticated access. The attacker can elevate accounts to academy_student, granting edit_posts and possibly upload_files if file‑upload is enabled. The vulnerability is limited to WordPress application privileges, but it permits significant content manipulation and potential introduction of malicious files. The ease of exploitation and lack of rollback amplifies the risk, warranting prompt remediation.

Generated by OpenCVE AI on October 10, 2026 at 03:50 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Academy LMS to version 4.0.4 or later, which removes the flawed add_child logic
  • Restrict the academy_guardian role to trusted administrators and enforce least privilege, ensuring only vetted users can perform guardian actions
  • Disable the student file‑upload configuration until the plugin is updated, preventing Author‑equivalent uploads until the issue is fixed

Generated by OpenCVE AI on October 10, 2026 at 03:50 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 20 Oct 2026 06:00:00 +0000

Type Values Removed Values Added
First Time appeared Kodezen
Kodezen academy Lms
Wordpress-extensions
Wordpress-extensions academy Lms
Vendors & Products Kodezen
Kodezen academy Lms
Wordpress-extensions
Wordpress-extensions academy Lms

Sun, 11 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Sat, 10 Oct 2026 02:45:00 +0000

Type Values Removed Values Added
Description The Academy LMS – AI Course Builder, Quizzes, Certificates & eLearning plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 4.0.3. This is due to the `add_child()` function calling `add_role('academy_student')` on any existing account resolved from the attacker-supplied `email` parameter before `Store::link()` validates the guardian-ward relationship, and failing to roll back that role write when `Store::link()` returns a `WP_Error`. This makes it possible for authenticated attackers with the `academy_guardian` role or higher to elevate any existing WordPress account — including their own — to the `academy_student` role, gaining `edit_posts` (Contributor-equivalent) capabilities and, when the student file-upload setting is enabled, `upload_files` (Author-equivalent) capabilities not granted to the guardian role. When a guardian supplies their own email address, `email_exists()` resolves to their own user ID, causing `Store::link()` to reject the self-link, but because the `add_role()` call has already executed and is never reversed, the academy_student role grant on their own account persists permanently.
Title Academy LMS <= 4.0.3 - Authenticated (Custom+) Privilege Escalation to add_child REST endpoint
Weaknesses CWE-269
References
Metrics cvssV3_1

{'score': 5.4, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N'}


Subscriptions

Kodezen Academy Lms
Wordpress-extensions Academy Lms
cve-icon MITRE

Status: PUBLISHED

Assigner: Wordfence

Published:

Updated: 2026-10-11T16:55:20.564Z

Reserved: 2026-10-01T17:03:56.186Z

Link: CVE-2026-104022

cve-icon Vulnrichment

Updated: 2026-10-11T16:46:31.631Z

cve-icon NVD

Status : Deferred

Published: 2026-10-10T03:17:03.953

Modified: 2026-10-13T13:30:21.620

Link: CVE-2026-104022

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-20T05:45:06Z

Weaknesses
  • CWE-269

    Improper Privilege Management