Skip to main content

LifterLMS CVE-2026-110284

| EUVDEUVD-2026-100904 HIGH
PHP Remote File Inclusion (CWE-98)
2026-10-14 Wordfence GHSA-cfqm-vm27-g9vj
7.5
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Obtain Instructor-level account
  2. Delivery
    Craft [lifterlms_checkout] shortcode with malicious template_name/default_path
  3. Exploit
    extract() overwrites template path variables
  4. Execution
    PHP include() loads attacker-chosen file
  5. Impact
    Disclose sensitive files or execute uploaded content

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V5 - File Handling File inclusion prevention, allowlisting
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Command and Control

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated account with Instructor-level privileges or above (PR:L) that can create or edit content rendering the [lifterlms_checkout] shortcode on LifterLMS versions up to and including 10.3.1. The specific prerequisite is attacker control over the shortcode's 'template_name' and 'default_path' attributes, which llms_get_template() passes through extract() before the include, letting them overwrite the resolved template path. File disclosure/inclusion works directly; achieving full remote code execution additionally requires the ability to upload a file with a safe (allowed) extension containing attacker-controlled content to an includable location, which is the main limiting factor reflected in the AC:H rating. Limiting factors overall: mandatory Instructor+ authentication and the conditional, upload-dependent path to code execution.

Impact

This is a genuine but constrained risk, not a drop-everything emergency. The CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H, 7.5 High) shows network-reachable exploitation with full confidentiality/integrity/availability impact, but two signals temper it: AC:H (high attack complexity) and PR:L (requires at least Instructor-level authentication). The Instructor-and-above privilege requirement is a meaningful barrier - this is not an anonymous internet-facing bug - and plain Local File Inclusion only escalates to full code execution 'in cases where files with safe extensions containing attacker-controlled content can be uploaded and included,' which is the source of the AC:H rating. No EPSS score, KEV listing, or public POC was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation; the finding originates from Wordfence research with direct source-code references to the vulnerable extract()/include pattern. Net: a credible, vendor-researched authenticated LFI/RCE in a popular plugin that warrants prompt patching for any multi-author LifterLMS site, but the privilege prerequisite and conditional RCE path place it below unauthenticated-RCE priority. Missing data to note explicitly: EPSS and POC status are absent from the input and cannot be assumed either way.

Exploit ScenarioDerived

An attacker who holds (or phishes/registers into) an Instructor-level account on a LifterLMS site crafts content containing a [lifterlms_checkout] shortcode with malicious 'template_name' and 'default_path' attributes. Because llms_get_template() runs extract() on the attribute array, those attributes overwrite the function's internal path variables and steer a PHP include() to an attacker-chosen file, disclosing sensitive files or, if a safe-extension file with attacker-controlled content can be uploaded and referenced, executing code. No public exploit was identified in the provided data.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.7% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 14, 2026

Local file inclusion in the LifterLMS WordPress plugin (up to and including 10.3.1) lets an authenticated attacker with Instructor-level access or above include and execute arbitrary files on the server by manipulating the 'template_name' and 'default_path' attributes of the [lifterlms_checkout] shortcode. The flaw causes llms_get_template() to overwrite its own local parameters via extract(), redirecting a PHP include to an attacker-chosen path, which can bypass access controls, expose sensitive data, and potentially achieve code execution where attacker-controlled content has been uploaded under an allowed file extension. There is no confirmed active exploitation (CISA KEV) and no public exploit code identified at time of analysis; the assessed vector (CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H, 7.5) reflects that Instructor+ authentication and, for full RCE, a successful upload are required prerequisites.

RemediationAI

Upstream fix available (changeset); released patched version not independently confirmed - the vendor changeset 3736899 (https://plugins.trac.wordpress.org/changeset/3736899/lifterlms/trunk/includes/functions/llms.functions.template.php) modifies llms_get_template() so shortcode attributes can no longer clobber the template path, but no tagged patched plugin release was confirmed in the supplied data, so administrators should verify the current LifterLMS release on WordPress.org before assuming an upgrade resolves it, and otherwise apply the trunk change or remove the plugin. Where patching must wait, restrict the Instructor role's capabilities so untrusted users cannot create or edit content that renders the [lifterlms_checkout] shortcode (this is the highest-value control, though it degrades legitimate course-authoring workflows), audit existing accounts for unnecessary Instructor+ privileges and revoke them, and block requests that supply template_name or default_path attributes to the shortcode at the WAF or reverse-proxy layer (a fragile, signature-dependent mitigation that may break legitimate checkout pages). Because code execution additionally depends on uploading a file with an allowed extension containing attacker-controlled content, tightening upload permissions and reviewing the uploads directory for unexpected PHP-includable content reduces the residual RCE path, but none of these compensations fully substitute for the code fix. Monitor the vendor advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/631c4d14-8b33-47ed-a2ff-68b2b2906b84 for the patched release.

Affected VersionsENISA

LifterLMS – WP LMS for eLearning, Online Courses, & Quizzes 0 ≤10.3.1

Affected Packages

euvd lifterlms_wp_lms_for_elearning_online_courses_quizzes no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected component is the LifterLMS WordPress plugin, a learning-management add-on whose CPE identifies it as 'lifterlms_-_wp_lms_for_elearning,_online_courses,_&_quizzes'. The root cause is CWE-98 (Improper Control of Filename for Include/Require Statement in PHP), realized here through two interacting features of the plugin. First, the [lifterlms_checkout] shortcode accepts user-supplied attributes, and at includes/shortcodes/class.llms.shortcode.checkout.php the attribute array is passed into template rendering. Second, the helper llms_get_template() in includes/functions/llms.functions.template.php calls PHP's extract() on that attribute array, which imports every shortcode attribute as a local variable - so an attacker-supplied 'template_name' or 'default_path' attribute silently replaces the function's own $template_name/$default_path parameters before the template path is resolved and passed to include. Because extract() runs before path resolution, the attacker controls the final include target. References point to the specific vulnerable lines (llms.functions.template.php L102/L120, class.llms.shortcode.checkout.php L138/L200, and class.llms.shortcodes.php L412), and the fix is recorded in changeset 3736899 to trunk/includes/functions/llms.functions.template.php.

Know when Lifterlms 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 (Wordfence) PRIMARY 7.5 HIGH
AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.5 HIGH

Network-reachable via shortcode but needs Instructor-level auth (PR:L) and upload/safe-extension conditions for full RCE (AC:H); successful inclusion yields full C/I/A impact.

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

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

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

DescriptionCVE.org

The LifterLMS - WP LMS for eLearning, Online Courses, & Quizzes plugin for WordPress is vulnerable to Local File Inclusion in versions up to, and including, 10.3.1 via attacker-controlled attributes of the [lifterlms_checkout] shortcode. This is due to the llms_get_template() helper performing extract() on the shortcode attribute array before resolving the template path, which allows the attacker-supplied 'template_name' and 'default_path' shortcode attributes to overwrite the function's local parameters and ultimately control the path passed to a PHP include. This makes it possible for authenticated attackers, with Instructor-level access and above, to include and execute arbitrary files on the server, that can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where files with safe extensions containing attacker-controlled content can be uploaded and included.

Executive ViewAI

Why It Matters

LifterLMS WordPress plugin versions up to and including 10.3.1 contain a high-severity local file inclusion flaw that allows authenticated users with Instructor-level access or higher to expose sensitive data and potentially execute code on affected e-learning sites. Because the plugin is widely used for course delivery, a compromise could disrupt training operations, leak student or proprietary data, and lead to broader site takeover. Leadership should prioritize an inventory and interim risk reduction because no vendor patch is available and the issue requires only authenticated access, not public exploit code.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations include restricting Instructor-level and above accounts, disabling the [lifterlms_checkout] shortcode where not required, temporarily disabling the LifterLMS plugin on high-risk sites, deploying WAF/virtual patching to block path traversal and unauthorized include paths, monitoring logs for template_name/default_path manipulation, restricting file uploads and PHP execution in upload directories, and enforcing least privilege.

Threat Intelligence Overview

EPSS Score
0.7%
Top 48% exploitable
Prevalence
Medium
popular WordPress LMS plugin, large but education-focused install base
Social Media
2
Sightings
Data Quality
4 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 HIGH
CISA KEV No
Public POC No
EPSS 0.7%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Local File Inclusion vulnerabilities occur when an application accepts user-controlled input to specify which file should be loaded or executed, typically through functions like PHP's `include()`, `require()`, or `fopen()`.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

CVE-2019-15896 CRITICAL POC
9.8 Sep 10

An issue was discovered in the LifterLMS plugin through 3.34.5 for WordPress. Rated critical severity (CVSS 9.8), this v

CVE-2021-24562 HIGH POC
7.5 Aug 23

The LMS by LifterLMS - Online Course, Membership & Learning Management System Plugin for WordPress plugin before 4.21.2

CVE-2024-13619 MEDIUM POC
6.1 May 15

The LifterLMS WordPress plugin before 8.0.1 does not sanitise and escape a parameter before outputting it back in the pa

CVE-2026-14207 MEDIUM POC
6.1 Jul 30

Stored cross-site scripting in LifterLMS WordPress plugin versions before 10.0.10 allows authenticated course editors to

CVE-2022-1250 MEDIUM POC
6.1 May 02

The LifterLMS PayPal WordPress plugin before 1.4.0 does not sanitise and escape some parameters from the payment confirm

CVE-2020-6008 CRITICAL
9.8 Mar 31

LifterLMS Wordpress plugin version below 3.37.15 is vulnerable to arbitrary file write leading to remote code execution.

CVE-2021-24308 MEDIUM POC
5.4 May 24

The 'State' field of the Edit profile page of the LMS by LifterLMS - Online Course, Membership & Learning Management Sys

CVE-2025-52717 CRITICAL
9.3 Jun 27

SQL injection in the LifterLMS WordPress plugin (versions up to and including 8.0.6) lets remote attackers inject crafte

CVE-2026-104723 HIGH
8.8 Oct 10

PHP Object Injection in LifterLMS through 10.2.1 requires an authenticated user with the edit_course capability-such as

CVE-2024-4743 HIGH
8.8 Jun 05

The LifterLMS - WordPress LMS Plugin for eLearning plugin for WordPress is vulnerable to SQL Injection via the orderBy a

CVE-2026-14231 MEDIUM POC
4.3 Jul 30

Authenticated information disclosure in the LifterLMS WordPress plugin before 10.0.10 exposes internal post type titles

CVE-2024-7349 HIGH
7.2 Sep 06

The LifterLMS - WP LMS for eLearning, Online Courses, & Quizzes plugin for WordPress is vulnerable to blind SQL Injectio

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