---
id: CVE-2026-104736
title: >-
  LearnPress <= 4.4.10 - Unauthenticated PHP Object Injection via
  'checkout-email' Parameter
summary: >-
  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 va…
severity: critical
cvss: 9.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-502
vendor: thimpress
product: LearnPress – WordPress LMS Plugin for Create and Sell Online Courses
affected:
  - learnpress_wordpress_lms_plugin_for_create_and_sell_online_courses <= 4.4.10
published: '2026-10-17'
updated: '2026-10-17'
sourceUpdated: '2026-10-17T03:43:28.046Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-104736'
references:
  - url: >-
      https://www.wordfence.com/threat-intel/vulnerabilities/id/3e28e008-0ec1-4262-9ac0-6170cf8b8bdf?source=cve
  - url: >-
      https://plugins.trac.wordpress.org/browser/learnpress/tags/4.4.9.1/inc/class-lp-session-handler.php#L373
  - url: >-
      https://plugins.trac.wordpress.org/browser/learnpress/tags/4.4.9.1/inc/class-lp-checkout.php#L377
  - url: >-
      https://plugins.trac.wordpress.org/browser/learnpress/tags/4.4.9.1/inc/class-lp-checkout.php#L523
  - url: >-
      https://plugins.trac.wordpress.org/browser/learnpress/tags/4.4.9.1/inc/class-lp-ajax.php#L21
  - url: >-
      https://plugins.trac.wordpress.org/changeset?reponame=&old=3750024%40learnpress&new=3750024%40learnpress
tags:
  - cve.org
  - exploit-available
ingestedAt: '2026-10-17T03:58:44.708Z'
epss: 0.00438
epssPercentile: 0.36594
exploits:
  github: 1
  githubRepos:
    - >-
      https://github.com/BIBILZERODAY/CVE-2026-104736---Proof-of-Concept-PoC-Exploit-Details
  checkedAt: '2026-10-17T17:27:17.315Z'
exploitAvailable: true
---

## Overview

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.

## Affected

- `learnpress_wordpress_lms_plugin_for_create_and_sell_online_courses <= 4.4.10`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
