HomeWordPress vulnerabilitiesLearnPress
LearnPress vulnerabilities
LearnPress has 75 known vulnerabilities in this database. The most recent published record is dated 6 Oct 2026.
- Known vulnerabilities
- 75
- Active installs
- 70,000+
- Latest version
- 4.4.9.1
- Last updated
- 1 Oct 2026
- Most recent
- 6 Oct 2026
No fixed version has been published yet, so consider disabling, removing or replacing the plugin until a safe release is available.
Find it in your WordPress dashboard under Plugins. Severity is based on the CVSS score published with the CVE where one is available.
| Vulnerability | Severity | Affected | Fix | Published |
|---|---|---|---|---|
| Cross-site scripting (XSS) CVE-2026-104670 | High 7.1 | Up to 4.4.9 | Fixed in a later version (latest 4.4.9.1) | 1 d ago |
| Cross-site scripting (XSS) CVE-2026-105397 | Medium 5.4 | Up to 4.4.9.1 | No fixed version yet | 2 d ago |
| Cross-site scripting (XSS) CVE-2026-92538 | Medium 6.1 | Up to 4.4.7 | Fixed in a later version (latest 4.4.9.1) | 4 d ago |
| Broken access control CVE-2026-39717 | Medium 4.3 | Up to 4.4.9.1 | No fixed version yet | 5 d ago |
| Broken access control CVE-2026-104403 | Medium 5.3 | Up to 4.4.9 | Fixed in a later version (latest 4.4.9.1) | 5 d ago |
| Broken access control CVE-2026-93882 | High 7.5 | Up to 4.4.8 | Fixed in a later version (latest 4.4.9.1) | 6 d ago |
| Sensitive data exposure CVE-2026-86446 | Low 3.7 | Before 4.4.7 | Fixed in 4.4.7 | 17 Sep 2026 |
| Cross-site scripting (XSS) CVE-2026-86444 | High 7.1 | Before 4.4.7 | Fixed in 4.4.7 | 16 Sep 2026 |
| Sensitive data exposure CVE-2026-86445 | Medium 5.3 | Before 4.4.7 | Fixed in 4.4.7 | 16 Sep 2026 |
| Sensitive data exposure CVE-2026-86447 | Medium 5.3 | Before 4.4.7 | Fixed in 4.4.7 | 16 Sep 2026 |
| Sensitive data exposure CVE-2026-86448 | Low 3.7 | Before 4.4.7 | Fixed in 4.4.7 | 16 Sep 2026 |
| Sensitive data exposure CVE-2026-86449 | Medium 5.3 | Before 4.4.7 | Fixed in 4.4.7 | 16 Sep 2026 |
| Cross-site scripting (XSS) CVE-2026-12230 | Medium 6.4 | Up to 4.3.9.1 | Fixed in a later version (latest 4.4.9.1) | 8 Sep 2026 |
| Cross-site scripting (XSS) CVE-2026-82024 | Medium 5.1 | Before 4.4.6 | Fixed in 4.4.6 | 3 Sep 2026 |
| Broken access control CVE-2026-82023 | Medium 5.3 | Before 4.4.6 | Fixed in 4.4.6 | 3 Sep 2026 |
| SQL injection CVE-2026-77823 | Medium 4.9 | Up to 4.4.4 | Fixed in a later version (latest 4.4.9.1) | 1 Sep 2026 |
| Sensitive data exposure CVE-2026-78125 | Medium 5.3 | Up to 4.0.2 | Fixed in a later version (latest 4.4.9.1) | 27 Aug 2026 |
| Broken access control CVE-2026-75982 | Medium 4.4 | Up to 4.4.4 | Fixed in a later version (latest 4.4.9.1) | 25 Aug 2026 |
| Sensitive data exposure CVE-2026-12976 | Medium 6.5 | Before 4.4.4 | Fixed in 4.4.4 | 12 Aug 2026 |
| Server-side request forgery (SSRF) CVE-2026-12971 | Low 2.2 | Before 4.4.4 | Fixed in 4.4.4 | 10 Aug 2026 |
| Cross-site scripting (XSS) CVE-2026-12970 | High 7.1 | Before 4.4.1 | Fixed in 4.4.1 | 20 Jul 2026 |
| Sensitive data exposure CVE-2026-13765 | High 7.5 | Up to 4.4.1 | Fixed in a later version (latest 4.4.9.1) | 17 Jul 2026 |
| Cross-site scripting (XSS) CVE-2026-12732 | Medium 6.4 | Up to 4.4.0 | Fixed in a later version (latest 4.4.9.1) | 1 Jul 2026 |
| Broken access control CVE-2026-11988 | Medium 6.5 | Up to 4.3.9.1 | Fixed in a later version (latest 4.4.9.1) | 1 Jul 2026 |
| Broken access control CVE-2026-8383 | Medium 5.3 | Before 4.3.7 | Fixed in 4.3.7 | 17 Jun 2026 |
| Sensitive data exposure CVE-2026-8502 | Medium 5.3 | Up to 4.3.6 | Fixed in a later version (latest 4.4.9.1) | 6 Jun 2026 |
| Broken access control CVE-2026-7648 | Medium 4.3 | Up to 4.3.5 | Fixed in a later version (latest 4.4.9.1) | 14 May 2026 |
| Broken access control CVE-2026-4365 | Critical 9.1 | Up to 4.3.2.8 | Fixed in a later version (latest 4.4.9.1) | 14 Apr 2026 |
| Cross-site scripting (XSS) CVE-2026-4333 | Medium 6.4 | Up to 4.3.3 | Fixed in a later version (latest 4.4.9.1) | 8 Apr 2026 |
| Broken access control CVE-2026-3225 | Medium 4.3 | Up to 4.3.2.8 | Fixed in a later version (latest 4.4.9.1) | 23 Mar 2026 |
| Broken access control CVE-2026-3226 | Medium 4.3 | Up to 4.3.2.8 | Fixed in a later version (latest 4.4.9.1) | 12 Mar 2026 |
| Sensitive data exposure CVE-2025-14798 | Medium 5.3 | Up to 4.3.2.4 | Fixed in a later version (latest 4.4.9.1) | 20 Jan 2026 |
| Broken access control CVE-2025-14802 | Medium 5.4 | Up to 4.3.2.2 | Fixed in a later version (latest 4.4.9.1) | 7 Jan 2026 |
| Broken access control CVE-2025-13964 | Medium 5.3 | Up to 4.3.2 | Fixed in a later version (latest 4.4.9.1) | 6 Jan 2026 |
| Broken access control CVE-2025-13956 | Medium 5.3 | Up to 4.3.1 | Fixed in a later version (latest 4.4.9.1) | 16 Dec 2025 |
| Sensitive data exposure CVE-2025-11368 | Medium 5.3 | Up to 4.2.9.4 | Fixed in a later version (latest 4.4.9.1) | 21 Nov 2025 |
| Broken access control CVE-2025-11372 | Medium 6.5 | Up to 4.2.9.2 | Fixed in a later version (latest 4.4.9.1) | 18 Oct 2025 |
| Cross-site scripting (XSS) CVE-2024-13127 | Medium 4.8 | Before 4.2.7.5.1 | Fixed in 4.2.7.5.1 | 15 May 2025 |
| Cross-site scripting (XSS) CVE-2024-13128 | Medium 4.8 | Before 4.2.7.5.1 | Fixed in 4.2.7.5.1 | 15 May 2025 |
| Cross-site scripting (XSS) CVE-2024-13599 | Medium 6.4 | Before 4.2.7.5.1 | Fixed in 4.2.7.5.1 | 25 Jan 2025 |
| Cross-site scripting (XSS) CVE-2024-9881 | Medium 4.8 | Before 4.2.7.2 | Fixed in 4.2.7.2 | 12 Dec 2024 |
| Cross-site scripting (XSS) CVE-2024-10010 | Medium 4.8 | Before 4.2.7.2 | Fixed in 4.2.7.2 | 12 Dec 2024 |
| Sensitive data exposure CVE-2024-11868 | Medium 5.3 | Before 4.2.7.4 | Fixed in 4.2.7.4 | 10 Dec 2024 |
| SQL injection CVE-2024-8522 | Critical 10.0 | Before 4.2.7.1 | Fixed in 4.2.7.1 | 12 Sep 2024 |
| SQL injection CVE-2024-8529 | Critical 10.0 | Before 4.2.7.1 | Fixed in 4.2.7.1 | 12 Sep 2024 |
| SQL injection CVE-2024-7548 | High 8.8 | Before 4.2.6.9.4 | Fixed in 4.2.6.9.4 | 8 Aug 2024 |
| File inclusion CVE-2024-6589 | High 8.8 | Up to 4.2.6.8.2 | Fixed in a later version (latest 4.4.9.1) | 25 Jul 2024 |
| Broken access control CVE-2024-6088 | Medium 5.3 | Before 4.2.6.8.2 | Fixed in 4.2.6.8.2 | 2 Jul 2024 |
| Security weakness CVE-2024-6099 | Medium 5.3 | Before 4.2.6.8.2 | Fixed in 4.2.6.8.2 | 2 Jul 2024 |
| Sensitive data exposure CVE-2024-5483 | Medium 5.3 | Before 4.2.6.8.1 | Fixed in 4.2.6.8.1 | 5 Jun 2024 |
| Cross-site scripting (XSS) CVE-2024-4971 | Medium 6.4 | Before 4.2.6.7 | Fixed in 4.2.6.7 | 22 May 2024 |
| Security weakness CVE-2024-4444 | Medium 5.3 | Before 4.2.6.6 | Fixed in 4.2.6.6 | 14 May 2024 |
| SQL injection CVE-2024-4434 | Critical 9.8 | Before 4.2.6.6 | Fixed in 4.2.6.6 | 14 May 2024 |
| Remote code execution CVE-2024-4397 | High 8.8 | Before 4.2.6.6 | Fixed in 4.2.6.6 | 14 May 2024 |
| Cross-site scripting (XSS) CVE-2024-4277 | Medium 6.4 | Before 4.2.6.6 | Fixed in 4.2.6.6 | 14 May 2024 |
| Cross-site scripting (XSS) CVE-2024-3560 | Medium 6.4 | Before 4.2.6.5 | Fixed in 4.2.6.5 | 19 Apr 2024 |
| Cross-site scripting (XSS) CVE-2024-1463 | Medium 4.4 | Before 4.2.6.4 | Fixed in 4.2.6.4 | 9 Apr 2024 |
| Broken access control CVE-2024-1289 | Medium 6.5 | Before 4.2.6.4 | Fixed in 4.2.6.4 | 9 Apr 2024 |
| Cross-site request forgery (CSRF) CVE-2024-2115 | High 8.8 | Before 4.0.1 | Fixed in 4.0.1 | 5 Apr 2024 |
| Cross-site scripting (XSS) CVE-2023-5558 | Medium 6.1 | Before 4.2.5.5 | Fixed in 4.2.5.5 | 16 Jan 2024 |
| Remote code execution CVE-2023-6634 | High 8.1 | Up to 4.2.5.7 | Fixed in a later version (latest 4.4.9.1) | 11 Jan 2024 |
| SQL injection CVE-2023-6567 | Critical 9.8 | Before 4.2.5.8 | Fixed in 4.2.5.8 | 11 Jan 2024 |
| Broken access control CVE-2023-6223 | Medium 4.3 | Up to 4.2.5.7 | Fixed in a later version (latest 4.4.9.1) | 11 Jan 2024 |
| File inclusion CVE-2022-47615 | Critical 9.3 | Before 4.2.0 | Fixed in 4.2.0 | 26 Jan 2023 |
| SQL injection CVE-2022-45820 | Critical 9.1 | Up to 4.1.7.3.2 | Fixed in a later version (latest 4.4.9.1) | 26 Jan 2023 |
| SQL injection CVE-2022-45808 | Critical 9.9 | Up to 4.1.7.3.2 | Fixed in a later version (latest 4.4.9.1) | 26 Jan 2023 |
| Remote code execution CVE-2022-3360 | High 8.1 | Before 4.1.7.2 | Fixed in 4.1.7.2 | 31 Oct 2022 |
| Cross-site scripting (XSS) CVE-2022-0271 | Medium 6.1 | Before 4.1.6 | Fixed in 4.1.6 | 11 Apr 2022 |
| Security weakness CVE-2022-0377 | Medium 4.3 | Before 4.1.5 | Fixed in 4.1.5 | 28 Feb 2022 |
| SQL injection CVE-2021-24951 | Critical 9.8 | Before 4.1.4 | Fixed in 4.1.4 | 13 Dec 2021 |
| Cross-site scripting (XSS) CVE-2021-39348 | Medium 5.5 | Up to 4.1.3.1 | Fixed in a later version (latest 4.4.9.1) | 21 Oct 2021 |
| Cross-site scripting (XSS) CVE-2021-24702 | Medium 4.8 | Before 4.1.3.1 | Fixed in 4.1.3.1 | 18 Oct 2021 |
| Broken access control CVE-2020-11511 | High 8.1 | Before 3.2.6.9 | Fixed in 3.2.6.9 | 30 Jul 2021 |
| SQL injection CVE-2020-6010 | High 8.8 | Up to 3.2.6.7 | Fixed in a later version (latest 4.4.9.1) | 30 Apr 2020 |
| Privilege escalation CVE-2020-7916 | Medium 6.5 | Up to 3.2.6.5 | Fixed in a later version (latest 4.4.9.1) | 16 Mar 2020 |
Read the published descriptions
- CVE-2026-104670, 6 Oct 2026
- Unauthenticated Cross Site Scripting (XSS) in LearnPress <= 4.4.9 versions. CVE record
- CVE-2026-105397, 5 Oct 2026
- LearnPress plugin for WordPress through 4.4.9.1 contains a stored cross-site scripting vulnerability that allows authenticated instructors to inject scripts via quiz question hint and explanation fields. Attackers with the Instructor role can submit unsanitized payloads through the update_question AJAX handler that execute in the session of every student taking the quiz. CVE record
- CVE-2026-92538, 3 Oct 2026
- The LearnPress - WordPress LMS Plugin for Create and Sell Online Courses plugin for WordPress is vulnerable to Reflected DOM-Based Cross-Site Scripting via the 'orderby' parameter in all versions up to, and including, 4.4.7 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link. CVE record
- CVE-2026-39717, 2 Oct 2026
- Missing Authorization vulnerability in ThimPress LearnPress learnpress allows Exploiting Incorrectly Configured Access Control Security Levels.This issue affects LearnPress: from n/a through 4.4.9.1. CVE record
- CVE-2026-104403, 2 Oct 2026
- Authorization Bypass Through User-Controlled Key vulnerability in ThimPress LearnPress allows Exploiting Incorrectly Configured Access Control Security Levels. This issue affects LearnPress: from n/a through 4.4.9. CVE record
- CVE-2026-93882, 1 Oct 2026
- The LearnPress - WordPress LMS Plugin for Create and Sell Online Courses plugin for WordPress is vulnerable to Insecure Direct Object Reference in versions up to, and including, 4.4.8 via the CourseMaterialTemplate::render_material_items() callback exposed on the public lp-ajax-handle (load_content_via_ajax) endpoint. The endpoint is explicitly listed in the AbstractAjax no-nonce allowlist and performs no capability check, and the render_material_items() handler decides authorization against one attacker-supplied identifier (course_id) while fetching the returned material rows via a second, independently attacker-supplied identifier (item_id) with no check that the lesson belongs to the authorized course. This makes it possible for unauthenticated attackers to read and download course-material files (uploaded and external file paths/URLs) belonging to lessons in paid or enrollment-required courses, provided any single course on the site has 'No Required Enroll' enabled and owns at least one material file. CVE record
- CVE-2026-86446, 17 Sep 2026
- The LearnPress WordPress plugin before 4.4.7 does not restrict the correctness flags it returns when a quiz answer is checked, allowing unauthenticated attackers to obtain the correct answer to every option of a question, along with the instructor's explanation, on courses configured to be taken without enrolling. CVE record
- CVE-2026-86444, 16 Sep 2026
- The LearnPress WordPress plugin before 4.4.7 does not escape a user supplied value before using it in an HTML attribute on a public page, allowing unauthenticated attackers to execute arbitrary JavaScript in the browser of anyone who opens a crafted link, including a logged in administrator. Only sites running a classic, non-block are affected. CVE record
- CVE-2026-86445, 16 Sep 2026
- The LearnPress WordPress plugin before 4.4.7 does not check the user's capabilities in one of its administrative template handlers, allowing unauthenticated attackers to retrieve the text, identifier and type of every published quiz question on the site, along with a keyword search over them, which is content the LearnPress WordPress plugin before 4.4.7 otherwise keeps non-public. CVE record
- CVE-2026-86447, 16 Sep 2026
- The LearnPress WordPress plugin before 4.4.7 does not check the user's capabilities in one of its administrative course tools, allowing unauthenticated attackers to list every enrolled student's display name and user identifier against the course they are enrolled on, and to recover their email addresses through the same handler's search filter. CVE record
- CVE-2026-86448, 16 Sep 2026
- The LearnPress WordPress plugin before 4.4.7 does not perform any authentication, capability or nonce check before serving a previously generated order export file, allowing unauthenticated attackers who can determine its identifier to download customer names, purchases, amounts and guest email addresses. CVE record
- CVE-2026-86449, 16 Sep 2026
- The LearnPress WordPress plugin before 4.4.7 does not check the user's capabilities before applying a user supplied post status filter in one of its REST routes, allowing unauthenticated attackers to list courses that are not published, including draft, pending, private, scheduled and trashed ones. CVE record
- CVE-2026-12230, 8 Sep 2026
- The LearnPress - WordPress LMS Plugin for Create and Sell Online Courses plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'layout_custom_css' parameter in all versions up to, and including, 4.3.9.1 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. CVE record
- CVE-2026-82024, 3 Sep 2026
- LearnPress WordPress Plugin before 4.4.6 contains a stored cross-site scripting vulnerability that allows authenticated attackers with the Instructor role to inject persistent malicious payloads by submitting unsanitized input into quiz question answer title fields. Attackers can store arbitrary JavaScript through the answer title parameter, which is rendered through an unescaped HTML sink to execute in the browsers of any user who views the affected quiz question, including students, other instructors, and administrators. CVE record
- CVE-2026-82023, 3 Sep 2026
- LearnPress WordPress Plugin before 4.4.6 contains a broken object-level authorization vulnerability that allows authenticated attackers with the Instructor role to add answers to quiz questions owned by other instructors by exploiting a missing ownership check on the question answer insert path. Attackers can supply arbitrary question identifiers during answer insertion, bypassing instructor-boundary restrictions to persistently modify quiz content across courses they do not own. CVE record
- CVE-2026-77823, 1 Sep 2026
- The LearnPress plugin for WordPress is vulnerable to SQL Injection via the 'orderby' parameter of the export_order_csv AJAX action in versions up to, and including, 4.4.4. This is due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query in the LP_Order::handle_params_query_list_orders() and DataBase::execute() functions - only the literal values 'date' and 'title' are normalized, while any other attacker-controlled string is assigned directly to the filter's order_by property and concatenated into the ORDER BY clause without $wpdb->prepare() or an identifier whitelist. This makes it possible for authenticated attackers, with administrator-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. CVE record
- CVE-2026-78125, 27 Aug 2026
- The LearnPress WordPress plugin before 4.0.3 does not perform any authorization check on one of its REST endpoints in all versions up to, and including, 4.0.2, allowing unauthenticated attackers to disclose the payment status of arbitrary orders by enumerating order identifiers. CVE record
- CVE-2026-75982, 25 Aug 2026
- The LearnPress plugin for WordPress is vulnerable to unauthorized modification of arbitrary WordPress options in versions up to, and including, 4.4.4 via the learnpress_create_page AJAX action. The LP_Admin_Ajax::create_page() handler only checks the edit_pages capability and a wp_rest nonce (both available to Editors), then reads the field_name parameter from the request without restricting it to a learn_press_* allow-list before passing it as the option key to LP_Helper::create_page(), which calls update_option($key_option, $page_id). This makes it possible for authenticated attackers, with Editor-level access and above, to update arbitrary WordPress options to a positive integer (a newly created page ID), enabling actions such as flipping users_can_register to a truthy value to open public registration, corrupting active_plugins to break the site, or otherwise tampering with site-wide settings normally reserved for administrators. CVE record
- CVE-2026-12976, 12 Aug 2026
- The LearnPress WordPress plugin before 4.4.4 does not verify that a user is enrolled in a course before processing AI-assistant requests against that course's lesson content, allowing any authenticated user such as a subscriber to obtain material from paid courses they have not enrolled in. CVE record
- CVE-2026-12971, 10 Aug 2026
- The LearnPress WordPress plugin before 4.4.4 does not validate a user-supplied URL before the server fetches it, allowing users with the instructor role to induce the server to issue requests to arbitrary external hosts, a blind and bounded server-side request forgery. CVE record
- CVE-2026-12970, 20 Jul 2026
- The LearnPress WordPress plugin before 4.4.1 does not escape a search parameter before reflecting it into an HTML attribute, leading to Reflected Cross-Site Scripting that executes in the browser of a logged-in instructor or administrator who is tricked into opening a crafted link. CVE record
- CVE-2026-13765, 17 Jul 2026
- The LearnPress - WordPress LMS Plugin for Create and Sell Online Courses plugin for WordPress is vulnerable to Sensitive Information Exposure in all versions up to, and including, 4.4.1 via the check_answer. This makes it possible for unauthenticated attackers to extract the correct-answer markers, full option lists, explanations, and question content for any quiz question on the site - including questions belonging to paid courses the attacker is not enrolled in. CVE record
- CVE-2026-12732, 1 Jul 2026
- The LearnPress plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'class_wrapper_form' shortcode attribute in versions up to, and including, 4.4.0. This is due to insufficient input sanitization and output escaping in the FilterCourseTemplate::sections() method at line 98, where the attacker-controlled attribute is inserted into an HTML class attribute via sprintf('<form class="%s">', $class_wrapper_form) without esc_attr() escaping. The FilterCourseShortcode::render() handler does not apply shortcode_atts() filtering, so raw user attributes flow directly through do_action('learn-press/filter-courses/layout', $data) into the template. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. CVE record
- CVE-2026-11988, 1 Jul 2026
- The LearnPress - WordPress LMS Plugin for Create and Sell Online Courses plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to, and including, 4.3.9.1 via the 'userId' parameter due to missing validation on a user controlled key. This makes it possible for authenticated attackers, with subscriber-level access and above, to view the course enrollment progress and completion data belonging to any instructor or administrator account on the site. This IDOR does not apply when the target user is a regular subscriber, as the guard correctly blocks cross-subscriber access; exploitation is limited to cases where the victim user holds the LP_TEACHER_ROLE or administrator role. CVE record
- CVE-2026-8383, 17 Jun 2026
- The LearnPress WordPress plugin before 4.3.7 does not gate the `edit` context on one of its REST endpoint behind the `edit_users` capability, allowing unauthenticated visitors to retrieve each returned user's roles, full capabilities map, extra capabilities, locale, and registration date via a crafted request CVE record
- CVE-2026-8502, 6 Jun 2026
- The LearnPress - WordPress LMS Plugin for Create and Sell Online Courses plugin for WordPress is vulnerable to Sensitive Information Exposure in all versions up to, and including, 4.3.6 via the 'return_type' parameter. This makes it possible for unauthenticated attackers to extract sensitive data including the plaintext post_password of password-protected courses and the full post_content, post_author, and post_name of unpublished draft, private, and pending courses via the unrestricted SELECT * fallback query. Exploitation requires supplying both c_status=all (to bypass the publish-only post_status WHERE clause) and return_type=json (to prevent the safe DISTINCT(ID) AS ID field override) in a single unauthenticated request to the /wp-json/lp/v1/courses/archive-course endpoint. CVE record
- CVE-2026-7648, 14 May 2026
- The LearnPress - WordPress LMS Plugin for Create and Sell Online Courses plugin for WordPress is vulnerable to payment bypass through user-controlled key in all versions up to, and including, 4.3.5. This is due to improper handling of user-supplied request parameters in the REST API endpoint, which passes the unsanitized parameter array to the add_to_cart() function where array_merge() allows attacker-controlled values to overwrite hardcoded defaults. This makes it possible for authenticated attackers, with subscriber-level access and above, to enroll in any paid course entirely free of charge by supplying a quantity value of zero, which causes the order total to calculate as $0 and bypasses all payment gateway requirements. CVE record
- CVE-2026-4365, 14 Apr 2026
- The LearnPress plugin for WordPress is vulnerable to unauthorized data deletion due to a missing capability check on the `delete_question_answer()` function in all versions up to, and including, 4.3.2.8. The plugin exposes a `wp_rest` nonce in public frontend HTML (`lpData`) to unauthenticated visitors, and uses that nonce as the only security gate for the `lp-load-ajax` AJAX dispatcher. The `delete_question_answer` action has no capability or ownership check. This makes it possible for unauthenticated attackers to delete any quiz answer option by sending a crafted POST request with a publicly available nonce. CVE record
- CVE-2026-4333, 8 Apr 2026
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'skin' attribute of the learn_press_courses shortcode in all versions up to and including 4.3.3. This is due to insufficient input sanitization and output escaping on the 'skin' shortcode attribute. The attribute value is used directly in an sprintf() call that generates HTML (class attribute and data-layout attribute) without any esc_attr() escaping. This makes it possible for authenticated attackers, with Contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. CVE record
- CVE-2026-3225, 23 Mar 2026
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to unauthorized deletion of quiz question answers due to a missing capability check in the delete_question_answer() function of the EditQuestionAjax class in all versions up to, and including, 4.3.2.8. The AbstractAjax::catch_lp_ajax() dispatcher verifies a wp_rest nonce but performs no current_user_can() check, and the QuestionAnswerModel::delete() method only validates minimum answer counts without checking user capabilities. This makes it possible for authenticated attackers, with Subscriber-level access and above, to delete answer options from any quiz question on the site. CVE record
- CVE-2026-3226, 12 Mar 2026
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to unauthorized email notification triggering due to missing capability checks on all 10 functions in the SendEmailAjax class in all versions up to, and including, 4.3.2.8. The AbstractAjax::catch_lp_ajax() dispatcher verifies a wp_rest nonce but performs no current_user_can() check before dispatching to handler functions. The wp_rest nonce is embedded in the frontend JavaScript for all authenticated users. This makes it possible for authenticated attackers, with Subscriber-level access and above, to trigger arbitrary email notifications to admins, instructors, and users, enabling email flooding, social engineering, and impersonation of admin decisions regarding instructor requests. CVE record
- CVE-2025-14798, 20 Jan 2026
- The LearnPress - WordPress LMS Plugin for WordPress is vulnerable to Sensitive Information Exposure in versions up to, and including, 4.3.2.4 via the get_item_permissions_check function. This makes it possible for unauthenticated attackers to extract sensitive data including user first names and last names. Other information such as social profile links and enrollment are also included. CVE record
- CVE-2025-14802, 7 Jan 2026
- The LearnPress - WordPress LMS Plugin for WordPress is vulnerable to unauthorized file deletion in versions up to, and including, 4.3.2.2 via the /wp-json/lp/v1/material/{file_id} REST API endpoint. This is due to a parameter mismatch between the DELETE operation and authorization check, where the endpoint uses file_id from the URL path but the permission callback validates item_id from the request body. This makes it possible for authenticated attackers, with teacher-level access, to delete arbitrary lesson material files uploaded by other teachers via sending a DELETE request with their own item_id (to pass authorization) while targeting another teacher's file_id. CVE record
- CVE-2025-13964, 6 Jan 2026
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on the catch_lp_ajax function in all versions up to, and including, 4.3.2. This makes it possible for unauthenticated attackers to modify course contents by adding/removing/updating/re-ordering sections or modifying section items. CVE record
- CVE-2025-13956, 16 Dec 2025
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to unauthorized access of data due to a missing capability check on the statistic function in all versions up to, and including, 4.3.1. This makes it possible for unauthenticated attackers to view the plugin's orders statistics, including total revenue summaries and order status counts CVE record
- CVE-2025-11368, 21 Nov 2025
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to Sensitive Information Disclosure in all versions up to, and including, 4.2.9.4. This is due to missing capability checks in the REST endpoint /wp-json/lp/v1/load_content_via_ajax which allows arbitrary callback execution of admin-only template methods. This makes it possible for unauthenticated attackers to retrieve admin curriculum HTML, quiz questions with correct answers, course materials, and other sensitive educational content via the REST API endpoint granted they can supply valid numeric IDs. CVE record
- CVE-2025-11372, 18 Oct 2025
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to modification of data in all versions up to, and including, 4.2.9.2. This is due to missing capability checks on the Admin Tools REST endpoints which are registered with permission_callback set to __return_true. This makes it possible for unauthenticated attackers to perform destructive database operations including dropping indexes on any table (including WordPress core tables like wp_options), creating duplicate configuration entries, and degrading site performance via the /wp-json/lp/v1/admin/tools/create-indexs endpoint granted they can provide table names. CVE record
- CVE-2024-13127, 15 May 2025
- The LearnPress WordPress plugin before 4.2.7.5.1 does not sanitise and escape some of its settings, which could allow high privilege users such as admin to perform Stored Cross-Site Scripting attacks even when the unfiltered_html capability is disallowed (for example in multisite setup). CVE record
- CVE-2024-13128, 15 May 2025
- The LearnPress WordPress plugin before 4.2.7.5.1 does not sanitise and escape some of its settings, which could allow high privilege users such as admin to perform Stored Cross-Site Scripting attacks even when the unfiltered_html capability is disallowed (for example in multisite setup). CVE record
- CVE-2024-13599, 25 Jan 2025
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to Stored Cross-Site Scripting in all versions up to, and including, 4.2.7.5 due to insufficient input sanitization and output escaping of a lesson name. This makes it possible for authenticated attackers, with LP Instructor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. CVE record
- CVE-2024-9881, 12 Dec 2024
- The LearnPress WordPress plugin before 4.2.7.2 does not sanitise and escape some of its settings, which could allow high privilege users such as admin to perform Stored Cross-Site Scripting attacks even when the unfiltered_html capability is disallowed (for example in multisite setup). CVE record
- CVE-2024-10010, 12 Dec 2024
- The LearnPress WordPress plugin before 4.2.7.2 does not sanitise and escape some of its settings, which could allow high privilege users such as admin to perform Stored Cross-Site Scripting attacks even when the unfiltered_html capability is disallowed (for example in multisite setup). CVE record
- CVE-2024-11868, 10 Dec 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to Sensitive Information Exposure in all versions up to, and including, 4.2.7.3 via class-lp-rest-material-controller.php. This makes it possible for unauthenticated attackers to extract potentially sensitive paid course material. CVE record
- CVE-2024-8522, 12 Sep 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to SQL Injection via the 'c_only_fields' parameter of the /wp-json/learnpress/v1/courses REST API endpoint in all versions up to, and including, 4.2.7 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. CVE record
- CVE-2024-8529, 12 Sep 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to SQL Injection via the 'c_fields' parameter of the /wp-json/lp/v1/courses/archive-course REST API endpoint in all versions up to, and including, 4.2.7 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. CVE record
- CVE-2024-7548, 8 Aug 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to time-based SQL Injection via the 'order' parameter in all versions up to, and including, 4.2.6.9.3 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers, with Contributor-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. CVE record
- CVE-2024-6589, 25 Jul 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 4.2.6.8.2 via the 'render_content_block_template' function. This makes it possible for authenticated attackers, with Contributor-level access and above, to include and execute arbitrary files on the server, allowing the execution of any PHP code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where images and other “safe” file types can be uploaded and included. CVE record
- CVE-2024-6088, 2 Jul 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to unauthorized user registration due to a missing capability check on the 'register' function in all versions up to, and including, 4.2.6.8.1. This makes it possible for unauthenticated attackers to bypass disabled user registration to create a new account with the default role. CVE record
- CVE-2024-6099, 2 Jul 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to unauthenticated bypass to user registration in versions up to, and including, 4.2.6.8.1. This is due to missing checks in the 'check_validate_fields' function in the checkout. This makes it possible for unauthenticated attackers to register as the default role on the site, even if registration is disabled. CVE record
- CVE-2024-5483, 5 Jun 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to Sensitive Information Exposure in all versions up to, and including, 4.2.6.8 due to incorrect implementation of get_items_permissions_check function. This makes it possible for unauthenticated attackers to extract basic information about website users, including their emails CVE record
- CVE-2024-4971, 22 May 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via the ‘id’ parameter in all versions up to, and including, 4.2.6.6 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link. CVE record
- CVE-2024-4444, 14 May 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to bypass to user registration in versions up to, and including, 4.2.6.5. This is due to missing checks in the 'create_account' function in the checkout. This makes it possible for unauthenticated attackers to register as the default role on the site, even if registration is disabled. CVE record
- CVE-2024-4434, 14 May 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to time-based SQL Injection via the ‘term_id’ parameter in versions up to, and including, 4.2.6.5 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. CVE record
- CVE-2024-4397, 14 May 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to arbitrary file uploads due to missing file type validation in the 'save_post_materials' function in versions up to, and including, 4.2.6.5. This makes it possible for authenticated attackers, with Instructor-level permissions and above, to upload arbitrary files on the affected site's server which may make remote code execution possible. CVE record
- CVE-2024-4277, 14 May 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the ‘layout_html’ parameter in all versions up to, and including, 4.2.6.5 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. CVE record
- CVE-2024-3560, 19 Apr 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the _id value in all versions up to, and including, 4.2.6.4 due to insufficient input sanitization and output escaping on user supplied attributes. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. CVE record
- CVE-2024-1463, 9 Apr 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the Course, Lesson, and Quiz title and content in all versions up to, and including, 4.2.6.3 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with LP Instructor-level access, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. CVE record
- CVE-2024-1289, 9 Apr 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to, and including, 4.2.6.3 due to missing validation on a user controlled key when looking up order information. This makes it possible for authenticated attackers to obtain information on orders placed by other users and guests, which can be leveraged to sign up for paid courses that were purchased by guests. Emails of other users are also exposed. CVE record
- CVE-2024-2115, 5 Apr 2024
- The LearnPress - WordPress LMS Plugin plugin for WordPress is vulnerable to Cross-Site Request Forgery in all versions up to, and including, 4.0.0. This is due to missing or incorrect nonce validation on the filter_users functions. This makes it possible for unauthenticated attackers to elevate their privileges to that of a teacher via a forged request granted they can trick a site administrator into performing an action such as clicking on a link. CVE record
- CVE-2023-5558, 16 Jan 2024
- The LearnPress WordPress plugin before 4.2.5.5 does not sanitise and escape user input before outputting it back in the page, leading to a Reflected Cross-Site Scripting which could be used against high privilege users such as admin. CVE record
- CVE-2023-6634, 11 Jan 2024
- The LearnPress plugin for WordPress is vulnerable to Command Injection in all versions up to, and including, 4.2.5.7 via the get_content function. This is due to the plugin making use of the call_user_func function with user input. This makes it possible for unauthenticated attackers to execute any public function with one parameter, which could result in remote code execution. CVE record
- CVE-2023-6567, 11 Jan 2024
- The LearnPress plugin for WordPress is vulnerable to time-based SQL Injection via the ‘order_by’ parameter in all versions up to, and including, 4.2.5.7 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. CVE record
- CVE-2023-6223, 11 Jan 2024
- The LearnPress plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to, and including, 4.2.5.7 via the /wp-json/lp/v1/profile/course-tab REST API due to missing validation on the 'userID' user controlled key. This makes it possible for authenticated attackers, with subscriber-level access and above, to retrieve the details of another user's course progress. CVE record
- CVE-2022-47615, 26 Jan 2023
- Local File Inclusion vulnerability in LearnPress - WordPress LMS Plugin <= 4.1.7.3.2 versions. CVE record
- CVE-2022-45820, 26 Jan 2023
- SQL Injection (SQLi) vulnerability in LearnPress - WordPress LMS Plugin <= 4.1.7.3.2 versions. CVE record
- CVE-2022-45808, 26 Jan 2023
- SQL Injection vulnerability in LearnPress - WordPress LMS Plugin <= 4.1.7.3.2 versions. CVE record
- CVE-2022-3360, 31 Oct 2022
- The LearnPress WordPress plugin before 4.1.7.2 unserialises user input in a REST API endpoint available to unauthenticated users, which could lead to PHP Object Injection when a suitable gadget is present, leadint to remote code execution (RCE). To successfully exploit this vulnerability attackers must have knowledge of the site secrets, allowing them to generate a valid hash via the wp_hash() function. CVE record
- CVE-2022-0271, 11 Apr 2022
- The LearnPress WordPress plugin before 4.1.6 does not sanitise and escape the lp-dismiss-notice before outputting it back via the lp_background_single_email AJAX action, leading to a Reflected Cross-Site Scripting CVE record
- CVE-2022-0377, 28 Feb 2022
- Users of the LearnPress WordPress plugin before 4.1.5 can upload an image as a profile avatar after the registration. After this process the user crops and saves the image. Then a "POST" request that contains user supplied name of the image is sent to the server for renaming and cropping of the image. As a result of this request, the name of the user-supplied image is changed with a MD5 value. This process can be conducted only when type of the image is JPG or PNG. An attacker can use this vulnerability in order to rename an arbitrary image file. By doing this, they could destroy the design of the web site. CVE record
- CVE-2021-24951, 13 Dec 2021
- The LearnPress WordPress plugin before 4.1.4 does not sanitise, validate and escape the id parameter before using it in SQL statements when duplicating course/lesson/quiz/question, leading to SQL Injections issues CVE record
- CVE-2021-39348, 21 Oct 2021
- The LearnPress WordPress plugin is vulnerable to Stored Cross-Site Scripting due to insufficient escaping on the $custom_profile parameter found in the ~/inc/admin/views/backend-user-profile.php file which allowed attackers with administrative user access to inject arbitrary web scripts, in versions up to and including 4.1.3.1. This affects multi-site installations where unfiltered_html is disabled for administrators, and sites where unfiltered_html is disabled. Please note that this is seperate from CVE-2021-24702. CVE record
- CVE-2021-24702, 18 Oct 2021
- The LearnPress WordPress plugin before 4.1.3.1 does not properly sanitize or escape various inputs within course settings, which could allow high privilege users to perform Cross-Site Scripting attacks when the unfiltred_html capability is disallowed CVE record
- CVE-2020-11511, 30 Jul 2021
- The LearnPress plugin before 3.2.6.9 for WordPress allows remote attackers to escalate the privileges of any user to LP Instructor via the accept-to-be-teacher action parameter. CVE record
- CVE-2020-6010, 30 Apr 2020
- LearnPress Wordpress plugin version prior and including 3.2.6.7 is vulnerable to SQL Injection CVE record
- CVE-2020-7916, 16 Mar 2020
- be_teacher in class-lp-admin-ajax.php in the LearnPress plugin 3.2.6.5 and earlier for WordPress allows any registered user to assign itself the teacher role via the wp-admin/admin-ajax.php?action=learnpress_be_teacher URI without any additional permission checks. Therefore, any user can change its role to an instructor/teacher and gain access to otherwise restricted data. CVE record
What to do if you run LearnPress
If you run LearnPress, open WordPress and check the installed version in Plugins. Compare it with the affected versions in the vulnerability record. If a fixed version is available, take a current backup and update to that version or the latest supported release.
If no fixed version exists, consider disabling and removing the plugin or replacing it with a maintained alternative. After dealing with the affected software, check administrator users, unexpected file changes, redirects, unfamiliar pages and security logs for signs that the site may already have been altered.
Email me about new LearnPress vulnerabilities
Free. We email you when a new vulnerability is published for LearnPress, usually within minutes. Confirm by email; unsubscribe any time.
Focus on your business. We’ll take care of your website.
From everyday updates to ongoing care, we keep your website working.