{"id":"CVE-2026-104736","aliases":["EUVD-2026-103224","GHSA-xchc-mccm-x286"],"status":"published","title":"LearnPress \u003c= 4.4.10 - Unauthenticated PHP Object Injection via 'checkout-email' Parameter","description":"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.","severity":{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.02524,"percentile":0.85095,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":false},"cwes":["CWE-502"],"published":"2026-10-17T03:43:28Z","modified":"2026-10-19T15:16:45Z","exploits":[{"source":"nuclei","id":"CVE-2026-104736","title":"LearnPress \u003c= 4.4.9.1 - PHP Object Injection","type":"detection template","url":"https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2026/CVE-2026-104736.yaml"},{"source":"pocgithub","id":"murrez/CVE-2026-104736","title":"murrez/CVE-2026-104736","date":"2026-10-18","url":"https://github.com/murrez/CVE-2026-104736"}],"products":[{"vendor":"thimpress","product":"learnpress – wordpress lms plugin for create and sell online courses"}],"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=\u0026old=3750024%40learnpress\u0026new=3750024%40learnpress"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-104736"},{"url":"https://github.com/advisories/GHSA-xchc-mccm-x286"}],"sources":{"cve":[{"id":"CVE-2026-104736","title":"LearnPress \u003c= 4.4.10 - Unauthenticated PHP Object Injection via 'checkout-email' Parameter","description":"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.","status":"published","published":"2026-10-17T03:43:28.046Z","modified":"2026-10-18T11:22:46.937Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"cna"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:20:09.098623Z"}],"euvd":[{"id":"EUVD-2026-103224","description":"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.","status":"published","published":"2026-10-17T03:43:28Z","modified":"2026-10-18T11:22:46Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T17:00:00.923575Z"}],"ghsa":[{"id":"GHSA-xchc-mccm-x286","title":"The LearnPress plugin for WordPress is vulnerable to PHP Object Injection in versions up to, and...","description":"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.","status":"published","published":"2026-10-17T06:30:31Z","modified":"2026-10-17T06:30:32Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T15:13:53.726362Z"}],"nvd":[{"id":"CVE-2026-104736","description":"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.","status":"published","published":"2026-10-17T04:16:47.78Z","modified":"2026-10-19T15:16:45.15Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"secondary"}],"cwes":["CWE-502"],"updated_at":"2026-11-02T14:13:00.123071Z"}]}}
