---
title: "CVE-2026-104723: LifterLMS WordPress Plugin - Insecure Deserialization"
description: "LifterLMS WordPress plugin <= 10.2.1 contains a PHP Object Injection caused by deserialization of untrusted input during lesson creation, letting authenticated users with edit_course capability inject PHP objects, exploit requires specific user roles and presence of a POP chain."
url: https://panop.io/threat-heartbeat/CVE-2026-104723/
---

# CVE-2026-104723 LifterLMS WordPress Plugin - Insecure Deserialization

LifterLMS WordPress plugin <= 10.2.1 contains a PHP Object Injection caused by deserialization of untrusted input during lesson creation, letting authenticated users with edit\_course capability inject PHP objects, exploit requires specific user roles and presence of a POP chain.

CVSS base score 8.8 /10

High

CISA KEV

Not listed

Public exploit

None known

Authentication

Required

EPSS

0.45% chance of exploitation in 30 days

[View the NVD record ↗](https://nvd.nist.gov/vuln/detail/CVE-2026-104723)

## Details

Type

Insecure Deserialization

Impact

Remote Code Execution, Data Tampering, Information Disclosure

CVSS vector

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Published

10 October 2026

Updated

15 October 2026

Weakness

[CWE-502](https://cwe.mitre.org/data/definitions/502.html)

## Vendor fix

Update to a version later than 10.2.1 or the latest available version.

Patching closes this CVE. It does not tell you which of your systems run the affected version, or what else is exposed alongside them.

## References

- [https://nvd.nist.gov/vuln/detail/CVE-2026-104723](https://nvd.nist.gov/vuln/detail/CVE-2026-104723)
- [https://plugins.trac.wordpress.org/browser/lifterlms/tags/10.2.1/includes/admin/class.llms.admin.builder.php#L1218](https://plugins.trac.wordpress.org/browser/lifterlms/tags/10.2.1/includes/admin/class.llms.admin.builder.php#L1218)
- [https://plugins.trac.wordpress.org/browser/lifterlms/tags/10.2.1/includes/admin/class.llms.admin.builder.php#L1576](https://plugins.trac.wordpress.org/browser/lifterlms/tags/10.2.1/includes/admin/class.llms.admin.builder.php#L1576)
- [https://plugins.trac.wordpress.org/browser/lifterlms/tags/10.2.1/includes/admin/class.llms.admin.builder.php#L458](https://plugins.trac.wordpress.org/browser/lifterlms/tags/10.2.1/includes/admin/class.llms.admin.builder.php#L458)
- [https://plugins.trac.wordpress.org/browser/lifterlms/tags/10.2.1/includes/admin/class.llms.admin.builder.php#L993](https://plugins.trac.wordpress.org/browser/lifterlms/tags/10.2.1/includes/admin/class.llms.admin.builder.php#L993)
- [https://plugins.trac.wordpress.org/changeset/3729229/lifterlms/trunk/includes/admin/class.llms.admin.builder.php](https://plugins.trac.wordpress.org/changeset/3729229/lifterlms/trunk/includes/admin/class.llms.admin.builder.php)
- [https://www.wordfence.com/threat-intel/vulnerabilities/id/cc7893ee-414d-4796-bb34-4d83951b95bd?source=cve](https://www.wordfence.com/threat-intel/vulnerabilities/id/cc7893ee-414d-4796-bb34-4d83951b95bd?source=cve)

[← All CVEs](https://panop.io/threat-heartbeat/)

## What this record can't tell you

- Whether you run the affected software, and where
- Whether an attacker can actually reach and exploit it
- The misconfigurations that never get a CVE number
- What it would cost the business, ranked into what to fix first

Panop answers these inside your environment, for this CVE and every other finding.

[Book a demo](https://panop.io/demo)
