CVE-2026-39524

Masteriyo LMS – Online Course Builder for eLearning, LMS & Education <= 2.1.5 - Missing Authorization

mediumMissing Authorization
5.3
CVSS Score
5.3
CVSS Score
medium
Severity
2.1.6
Patched in
8d
Time to patch

Description

The Masteriyo LMS – Online Course Builder for eLearning, LMS & Education plugin for WordPress is vulnerable to unauthorized access due to a missing capability check on a function in all versions up to, and including, 2.1.5. This makes it possible for unauthenticated attackers to perform an unauthorized action.

CVSS Vector Breakdown

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
None
Confidentiality
Low
Integrity
None
Availability

Technical Details

Affected versions<=2.1.5
PublishedApril 8, 2026
Last updatedApril 15, 2026

What Changed in the Fix

Changes introduced in v2.1.6

Loading patch diff...

Source Code

WordPress.org SVN
Research Plan
Unverified

# Vulnerability Research Plan: CVE-2026-39524 - Masteriyo LMS Missing Authorization ## 1. Vulnerability Summary The **Masteriyo LMS** plugin (up to version 2.1.5) contains a missing authorization vulnerability in its Stripe integration addon. Specifically, the function `save_stripe_account()` in `M…

Show full research plan

Vulnerability Research Plan: CVE-2026-39524 - Masteriyo LMS Missing Authorization

1. Vulnerability Summary

The Masteriyo LMS plugin (up to version 2.1.5) contains a missing authorization vulnerability in its Stripe integration addon. Specifically, the function save_stripe_account() in Masteriyo\Addons\Stripe\StripeAddon is responsible for updating sensitive Stripe settings (including stripe_user_id and sandbox mode).

While the function is hooked to admin_head and performs a nonce check (masteriyo_stripe_nonce), it fails to perform a capability check (e.g., current_user_can('manage_options')). If an attacker can obtain a valid masteriyo_stripe_nonce (which is often leaked in public localized scripts or during unauthenticated interactions) and trick the environment into satisfying the get_current_screen() check, or if the logic is reachable via other means, they can manipulate the plugin's payment configuration.

2. Attack Vector Analysis

  • Endpoint: wp-admin/admin.php?page=masteriyo (or any URL that satisfies the toplevel_page_masteriyo screen check).
  • Hook: admin_head via StripeAddon::save_stripe_account.
  • Vulnerable Parameters: nonce, accountId, mode.
  • Authentication: Unauthenticated (if the nonce

Check if your site is affected.

Run a free security audit to detect vulnerable plugins, outdated versions, and misconfigurations.