Skip to main content

LearnPress CVE-2026-104736

| EUVDEUVD-2026-103224 CRITICAL
Deserialization of Untrusted Data (CWE-502)
2026-10-17 Wordfence
9.8
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Reach public checkout AJAX endpoint
  2. Delivery
    Submit serialized payload in checkout-email
  3. Exploit
    Payload stored in LP session table
  4. Execution
    unserialize() on later request instantiates object
  5. Persist
    Gadget chain triggers code execution
  6. Impact
    Full site/data compromise

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

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

Exploitation Conditions

No special configuration is required: the vulnerable path is the default LearnPress checkout AJAX action, reachable by unauthenticated users via the 'checkout-email' request parameter, so any site running LearnPress ≤4.4.10 with standard checkout enabled is exposed. The payload is stored in the LearnPress session table and deserialized by LP_Session_Handler::get() via LP_Helper::maybe_unserialize() → unserialize() with no allowed_classes restriction on a subsequent request. The key LIMITING factor is that object injection alone is inert - achieving the claimed high confidentiality/integrity/availability impact (e.g., RCE) requires a usable POP gadget chain in LearnPress, WordPress core, or another installed plugin/theme; without such a chain, practical impact is reduced.

Impact

All provided signals point to a genuinely high-priority flaw, with important caveats on real-world impact. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N) is internally consistent with the description: exploitation is network-based, low-complexity, and unauthenticated, reaching the public checkout AJAX action - nothing contradicts the 9.8 score. However, CWE-502 PHP Object Injection is a conditional-impact class: injecting a PHP object only yields the claimed C:H/I:H/A:H (typically RCE, file ops, or data exfiltration) if a usable POP gadget chain exists in LearnPress, WordPress core, or a co-installed plugin/theme. The 9.8 therefore reflects worst-case potential rather than guaranteed universal RCE. EPSS is NOT provided in the input, so exploitation probability cannot be quantified. KEV status is absent (not listed), and no POC/exploit code is referenced - this is credited to Wordfence research only. SSVC fields (automatable, technical impact, exploitation) were not supplied. Net: treat as a priority patch given unauthenticated network reachability and the historical prevalence of working WordPress POP chains, but note that active exploitation is NOT confirmed and the raw 9.8 may overstate guaranteed impact absent a gadget chain.

Exploit ScenarioDerived

An unauthenticated attacker submits a crafted 'checkout-email' value containing serialized PHP object syntax to the LearnPress checkout AJAX endpoint. sanitize_text_field() leaves the serialized payload intact, so it is stored in the LearnPress session table and later passed to unserialize() without allowed_classes restriction on a subsequent request, instantiating an attacker-controlled object. If a suitable POP gadget chain is present in the stack, this escalates to remote code execution or data compromise; no public exploit code is referenced at time of analysis.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
No patch listed yet

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

Alert me

AnalysisAIv1 – Oct 17, 2026

Unauthenticated PHP object injection in the LearnPress WordPress LMS plugin through version 4.4.10 allows attackers to store a crafted serialized object via the checkout-email parameter, which LearnPress later deserializes without an allowed_classes restriction. The CVSS 3.1 score is 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), but practical high-impact exploitation depends on a usable POP gadget chain in LearnPress, WordPress core, or another installed plugin/theme; no public exploit has been identified at time of analysis.

RemediationAI

Update LearnPress to a release later than 4.4.10; the supplied references point to WordPress plugin repository changeset 3750024 as the upstream fix, but a tagged patched release version is not independently confirmed in the provided data, so verify the current fixed version in the WordPress plugin directory or the Wordfence advisory before upgrading. If an immediate update is not possible, deploy a WAF rule that blocks checkout-email values containing PHP serialized-object tokens such as O: or C: on admin-ajax.php checkout requests - trade-off: possible false positives for unusual email strings and ongoing rule maintenance. Alternatively, temporarily disable the LearnPress checkout AJAX action or checkout page until patched - trade-off: loss of course sales. A code-level mitigation is to enforce allowed_classes => false in the LP_Helper::maybe_unserialize()/unserialize() path - trade-off: requires custom development and may break legitimate session object hydration.

Affected VersionsENISA

LearnPress – WordPress LMS Plugin for Create and Sell Online Courses 0 ≤4.4.10

Affected Packages

euvd learnpress_wordpress_lms_plugin_for_create_and_sell_online_courses 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

LearnPress is a WordPress LMS plugin (CPE: cpe:2.3:a:thimpress:learnpress_-_wordpress_lms_plugin_for_create_and_sell_online_courses:*:*:*:*:*:*:*:*). The flaw is CWE-502 (Deserialization of Untrusted Data): the checkout AJAX action accepts the checkout-email request parameter, applies sanitize_text_field() - which does not remove PHP serialized-object syntax such as O: - and stores the value in the LearnPress session table. On a subsequent request, LP_Session_Handler::get() retrieves the session value and passes it through LP_Helper::maybe_unserialize() to unserialize() without an allowed_classes restriction, instantiating attacker-controlled objects. Object injection alone is inert; achieving the assessed high confidentiality, integrity, and availability impact, such as remote code execution, requires a viable POP gadget chain available in the WordPress environment.

Know when PHP 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 CRITICAL
NVD 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 9.8 CRITICAL

Unauthenticated, low-complexity network injection via the default checkout AJAX action warrants AV:N/AC:L/PR:N/UI:N; object injection can yield full impact where a gadget chain exists, so C/I/A:H.

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

Primary rating from Vendor (Wordfence).

CVSS VectorNVD

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

DescriptionNVD

The LearnPress plugin for WordPress is vulnerable to PHP Object Injection in versions up to, and including, 4.4.10 via deserialization of untrusted input from the 'checkout-email' request parameter during the checkout AJAX action. The value is passed through sanitize_text_field(), which does not strip serialized object syntax, then stored in the LearnPress session table and later fed to LP_Helper::maybe_unserialize() → unserialize() (without an allowed_classes restriction) by LP_Session_Handler::get() on subsequent requests. This makes it possible for unauthenticated attackers to inject a PHP Object.

Executive ViewAI

Why It Matters

LearnPress, the WordPress learning-management plugin used by many organizations to host online courses, carries a critical unauthenticated object-injection flaw affecting all releases through 4.4.10, and no vendor update is currently available. Any internet-facing site running this plugin - and the learner records, payment flows, and course content it holds - should be treated as potentially compromiseable until it is removed or mitigated. Leadership should care because exploitation requires no credentials and, if a usable gadget chain exists in the plugin, theme, or another installed component, could yield full site takeover and exposure of student and customer data.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: deactivate or remove LearnPress (especially on internet-facing sites), deploy WAF/reverse-proxy rules blocking serialized object payloads in the checkout-email parameter, restrict access to checkout and wp-admin endpoints, reduce the installed plugin/theme attack surface to limit available POP gadget chains, and monitor logs for serialized payloads and anomalous POST activity to checkout endpoints.

Threat Intelligence Overview

Prevalence
Medium
popular WordPress LMS plugin, large but not universal install base
Social Media
8
Sightings
Data Quality
3 sources
Confidence: Low

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 CRITICAL
CISA KEV No
Public POC No
EPSS N/A
Patch available No
Active threat No
Deciding rule
CRITICAL severity
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

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

Attack Technique

Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

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