CVE-2020-26030

9.8 CRITICAL

📋 TL;DR

This vulnerability allows attackers to bypass authentication in Zammad's SSO endpoint by sending a crafted header when SSO is not configured. Attackers can create authenticated sessions to perform any actions as other users. All Zammad instances running vulnerable versions are affected.

💻 Affected Systems

Products:
  • Zammad
Versions: All versions before 3.4.1
Operating Systems: All platforms running Zammad
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists when SSO is not configured, which is the default state for many installations.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise where attackers gain administrative privileges, access sensitive customer data, modify configurations, and perform destructive actions across the entire Zammad instance.

🟠

Likely Case

Unauthorized access to customer support tickets, user data, and system settings, potentially leading to data theft, privilege escalation, and service disruption.

🟢

If Mitigated

Limited impact with proper network segmentation, monitoring, and access controls that detect and block unauthorized authentication attempts.

🌐 Internet-Facing: HIGH - The SSO endpoint is typically exposed to the internet, making it directly accessible to attackers without requiring internal network access.
🏢 Internal Only: MEDIUM - Internal attackers could exploit this if they have network access to the Zammad instance, though external exposure presents greater risk.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires sending a crafted header to the SSO endpoint, which is straightforward for attackers with basic HTTP manipulation skills.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.4.1 and later

Vendor Advisory: https://zammad.com/news/security-advisory-zaa-2020-18

Restart Required: Yes

Instructions:

1. Backup your Zammad instance and database. 2. Update to Zammad 3.4.1 or later using your package manager or deployment method. 3. Restart the Zammad service. 4. Verify the update was successful.

🔧 Temporary Workarounds

Disable SSO endpoint

all

Temporarily disable or block access to the SSO endpoint if not in use

# Configure web server (nginx example) to block /auth/sso
location /auth/sso { deny all; }
# Configure firewall to block access to SSO endpoint

Enable SSO configuration

all

Configure SSO properly with authentication requirements

# Configure Zammad SSO according to documentation
# See: https://docs.zammad.org/en/latest/system/sso.html

🧯 If You Can't Patch

  • Implement network-level restrictions to limit access to the SSO endpoint only to trusted sources
  • Enable detailed logging and monitoring for authentication attempts and session creation events

🔍 How to Verify

Check if Vulnerable:

Check Zammad version: if running version < 3.4.1 and SSO is not configured, the system is vulnerable.

Check Version:

zammad run rails r "puts Zammad::Application::Version"

Verify Fix Applied:

Verify Zammad version is 3.4.1 or later and test that unauthorized SSO authentication attempts are properly rejected.

📡 Detection & Monitoring

Log Indicators:

  • Unusual authentication attempts to /auth/sso endpoint
  • Session creation without proper authentication flow
  • Multiple failed SSO attempts followed by successful authentication

Network Indicators:

  • HTTP requests to /auth/sso with crafted headers
  • Unusual traffic patterns to authentication endpoints

SIEM Query:

source="zammad.log" AND (uri_path="/auth/sso" AND NOT user_agent="browser-agent")

🔗 References

📤 Share & Export