---
id: "CVE-2026-104736"
kind: "vulnerability"
aliases: ["CVE-2026-104736"]
title: "The LearnPress plugin for WordPress is vulnerable to PHP Object Injection in versions up to, and including, 4.4.10\u2026"
severity: "critical"
cvss: 9.8
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["learnpress", "package", "php", "wordpress"]
not_affected_if: ["learnpress-not-installed", "version-above-4.4.10"]
published_at: "2026-10-17T04:16:47+00:00"
first_seen_at: "2026-10-23T21:57:14+00:00"
updated_at: "2026-10-23T22:28:55+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-104736", "first_seen_at": "2026-10-23T21:57:14+00:00"}]
---

# The LearnPress plugin for WordPress is vulnerable to PHP Object Injection in versions up to, and including, 4.4.10…

The LearnPress WordPress plugin up to and including 4.4.10 passes an unauthenticated checkout-email parameter through unserialize() without restriction. An attacker can inject a PHP object, which can lead to code execution if a usable gadget chain exists on the site.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

In the WordPress admin Plugins screen, check whether LearnPress is installed at version 4.4.10 or lower.

## Fix

Update LearnPress to a release newer than 4.4.10; the fixed version is unknown from the sources.

## Timeline

- 2026-10-23T21:57:14+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-104736

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
