CVE-2020-35662

7.4 HIGH

📋 TL;DR

This vulnerability in SaltStack Salt allows man-in-the-middle attacks by failing to properly validate SSL certificates during authentication to certain services. Attackers can intercept and manipulate communications between Salt master and minions. Organizations using Salt for configuration management before version 3002.5 are affected.

💻 Affected Systems

Products:
  • SaltStack Salt
Versions: All versions before 3002.5
Operating Systems: Linux, Windows, macOS
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects specific modules that perform authentication without SSL validation. Not all Salt communications are vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of Salt infrastructure allowing attackers to execute arbitrary commands on all managed systems, steal credentials, and pivot to internal networks.

🟠

Likely Case

Credential theft and unauthorized access to Salt-managed systems, potentially leading to configuration manipulation and data exfiltration.

🟢

If Mitigated

Limited impact if network segmentation prevents man-in-the-middle positioning and certificate validation is enforced elsewhere.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Requires man-in-the-middle position but trivial to exploit once positioned. No public exploit code but technique is well-known.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3002.5 or later

Vendor Advisory: https://saltproject.io/security_announcements/active-saltstack-cve-release-2021-feb-25/

Restart Required: Yes

Instructions:

1. Backup Salt configuration and data. 2. Update Salt using package manager: 'yum update salt' or 'apt-get install salt'. 3. Verify version is 3002.5+. 4. Restart Salt services: 'systemctl restart salt-master salt-minion'. 5. Test functionality.

🔧 Temporary Workarounds

Enforce SSL certificate validation

all

Configure Salt to always validate SSL certificates in vulnerable modules

salt '*' config.set ssl_verify true
salt '*' config.set verify_ssl true

Network segmentation

all

Isolate Salt communications to prevent man-in-the-middle attacks

🧯 If You Can't Patch

  • Implement strict network controls to prevent man-in-the-middle positioning between Salt components
  • Monitor Salt communications for unexpected certificate changes or authentication anomalies

🔍 How to Verify

Check if Vulnerable:

Check Salt version: 'salt --version' or 'salt-master --version'. If version is below 3002.5, system is vulnerable.

Check Version:

salt --version

Verify Fix Applied:

Verify version is 3002.5 or higher and test SSL validation with: 'salt-call config.get ssl_verify' should return True.

📡 Detection & Monitoring

Log Indicators:

  • SSL certificate validation errors in Salt logs
  • Unexpected authentication failures
  • Changes to SSL/TLS configuration

Network Indicators:

  • Unencrypted Salt communications
  • SSL/TLS handshake anomalies
  • Unexpected intermediate certificates

SIEM Query:

source="salt*" AND ("SSL" OR "certificate" OR "validation") AND ("error" OR "fail" OR "warning")

🔗 References

📤 Share & Export