CVE-2021-3456

7.1 HIGH

📋 TL;DR

An improper authorization flaw in Foreman's Salt plugin for smart-proxy allows authenticated local attackers to execute actions restricted to the Foreman Server. This enables unauthorized resource deletion and denial of service attacks. Affected systems are Foreman deployments using the Salt plugin with vulnerable smart-proxy configurations.

💻 Affected Systems

Products:
  • Foreman with Salt plugin
Versions: Foreman versions before 2.3.0
Operating Systems: Linux distributions running Foreman
Default Config Vulnerable: ⚠️ Yes
Notes: Requires Salt plugin enabled in smart-proxy configuration and authenticated local access to Foreman client systems.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise through unauthorized administrative actions, data destruction, and sustained denial of service rendering Foreman unavailable.

🟠

Likely Case

Unauthorized deletion of limited resources and temporary service disruption affecting Foreman availability.

🟢

If Mitigated

Minimal impact with proper network segmentation, least privilege access, and monitoring in place.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires authenticated access to Foreman client systems but uses simple authorization bypass techniques.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Foreman 2.3.0 and later

Vendor Advisory: https://bugzilla.redhat.com/show_bug.cgi?id=1941001

Restart Required: Yes

Instructions:

1. Update Foreman to version 2.3.0 or later. 2. Update smart-proxy components. 3. Restart Foreman services. 4. Verify Salt plugin functionality.

🔧 Temporary Workarounds

Disable Salt plugin

linux

Temporarily disable the vulnerable Salt plugin in smart-proxy configuration

Edit /etc/foreman-proxy/settings.d/salt.yml and set ':enabled: false'
Restart foreman-proxy service

Restrict client access

linux

Implement strict network controls to limit which systems can communicate with smart-proxy

Configure firewall rules to restrict access to smart-proxy ports (typically 8443)

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate Foreman infrastructure
  • Apply principle of least privilege to all Foreman client accounts and monitor for suspicious activity

🔍 How to Verify

Check if Vulnerable:

Check Foreman version with 'foreman --version' and verify if below 2.3.0 with Salt plugin enabled

Check Version:

foreman --version

Verify Fix Applied:

Confirm Foreman version is 2.3.0+ and test Salt plugin functionality returns proper authorization errors for unauthorized requests

📡 Detection & Monitoring

Log Indicators:

  • Unauthorized access attempts in Foreman logs
  • Unexpected resource deletion events
  • Salt plugin authorization failures

Network Indicators:

  • Unusual smart-proxy traffic patterns from client systems
  • Multiple DELETE requests to restricted endpoints

SIEM Query:

source="foreman" AND (event="unauthorized_access" OR event="resource_deleted") AND plugin="salt"

🔗 References

📤 Share & Export