id: CVE-2020-16846

info:
  name: SaltStack <=3002 - Shell Injection
  author: dwisiswant0
  severity: critical
  description: |
    SaltStack Salt through 3002 allows an unauthenticated user with network access to the Salt API to use shell injections to run code on the Salt-API using the SSH client.
  remediation: |
    Upgrade to a patched version of SaltStack (>=3003) to mitigate this vulnerability.
  reference:
    - https://saltproject.io/on-november-3-2020-saltstack-publicly-disclosed-three-new-cves/
    - https://mp.weixin.qq.com/s/R8qw_lWizGyeJS0jOcYXag
    - https://github.com/vulhub/vulhub/tree/master/saltstack/CVE-2020-16846
    - https://nvd.nist.gov/vuln/detail/CVE-2020-16846
    - http://lists.opensuse.org/opensuse-security-announce/2020-11/msg00029.html
  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-16846
    cwe-id: CWE-78
    epss-score: 0.97467
    epss-percentile: 0.99962
    cpe: cpe:2.3:a:saltstack:salt:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: saltstack
    product: salt
  tags: cve2020,cve,vulhub,saltstack,kev
variables:
  priv: "{{to_lower(rand_text_alpha(5))}}"
  roaster: "{{to_lower(rand_text_alpha(6))}}"

http:
  - method: POST
    path:
      - "{{BaseURL}}/run"

    body: "token=1337&client=ssh&tgt=*&fun=a&roster={{roaster}}&ssh_priv={{priv}}"

    headers:
      Content-Type: application/x-www-form-urlencoded # CherryPy will abort w/o define this header

    matchers-condition: and
    matchers:
      - type: dsl
        dsl:
          - regex("CherryPy\/([0-9.]+)", header) || regex("CherryPy ([0-9.]+)", body)

      - type: word
        part: body
        words:
          - "An unexpected error occurred"

      - type: word
        part: header
        words:
          - "application/json"

      - type: status
        status:
          - 500
# digest: 490a0046304402205bdb4c797f328c4914a9e09a15d8be520c04e35f8d053d755fbc41170e33f75302201aa24321fa882160ae44ac611f3266b6fa87417fea14a8c03f7e9a67a35e1964:922c64590222798bb761d5b6d8e72950