Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Instructor-level account
-
DeliveryCraft [lifterlms_checkout] shortcode with malicious template_name/default_path
-
Exploitextract() overwrites template path variables
-
ExecutionPHP include() loads attacker-chosen file
-
ImpactDisclose 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
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.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
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
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.
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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.
An issue was discovered in the LifterLMS plugin through 3.34.5 for WordPress. Rated critical severity (CVSS 9.8), this v
The LMS by LifterLMS - Online Course, Membership & Learning Management System Plugin for WordPress plugin before 4.21.2
The LifterLMS WordPress plugin before 8.0.1 does not sanitise and escape a parameter before outputting it back in the pa
Stored cross-site scripting in LifterLMS WordPress plugin versions before 10.0.10 allows authenticated course editors to
The LifterLMS PayPal WordPress plugin before 1.4.0 does not sanitise and escape some parameters from the payment confirm
LifterLMS Wordpress plugin version below 3.37.15 is vulnerable to arbitrary file write leading to remote code execution.
The 'State' field of the Edit profile page of the LMS by LifterLMS - Online Course, Membership & Learning Management Sys
SQL injection in the LifterLMS WordPress plugin (versions up to and including 8.0.6) lets remote attackers inject crafte
PHP Object Injection in LifterLMS through 10.2.1 requires an authenticated user with the edit_course capability-such as
The LifterLMS - WordPress LMS Plugin for eLearning plugin for WordPress is vulnerable to SQL Injection via the orderBy a
Authenticated information disclosure in the LifterLMS WordPress plugin before 10.0.10 exposes internal post type titles
The LifterLMS - WP LMS for eLearning, Online Courses, & Quizzes plugin for WordPress is vulnerable to blind SQL Injectio
EUVD-2026-100904
GHSA-cfqm-vm27-g9vj
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB