Zero-Day-Schwachstelle im Zammad Helpdesk

Während eines Sicherheitstests bei einem unserer Kunden stießen wir auf eine Webanwendung mit integrierter Helpdesk-Software. In diesem Zusammenhang identifizierten wir eine kritische Zero-Day-Schwachstelle in der Software von Zammad. Diese bestand, weil Zammad die Autorisierung für bestimmte Anhang-Endpunkte nicht korrekt durchführte. Dies würde es einem nicht authentifizierten Angreifer ermöglichen, Zugriff auf alle Anhänge zu erhalten – wie Bilder, E-Mails oder andere angehängte Dateien. In diesem Blogbeitrag beschreiben wir, wie die Schwachstelle identifiziert und ausgenutzt wurde sowie was sie verursachte.

UPDATE 12.08.2022: Die Schwachstelle hat jetzt eine offizielle CVE: CVE-2022-35487

Inhalt

  1. Hintergrundwissen
  2. Kartierung der Angriffsfläche
  3. Ausnutzung der Schwachstelle (Alles dumpen)
  4. Identifizierung der Ursache der Schwachstelle & Schadensbegrenzung
  5. Reaktion des Herstellers

1. Hintergrundwissen

Viele Unternehmen nutzen irgendeine Art von Helpdesk. Dieser wird verwendet, um Supportanfragen sowohl intern als auch für Endbenutzer abzudecken. Wir zeigen, wie die Zero-Day-Schwachstelle während unseres Sicherheitsaudits identifiziert wurde und in welchem Ausmaß die Ausnutzung dieser Schwachstelle möglich ist.

2. Kartierung der Angriffsfläche

Die Zammad-Software ist normalerweise durch eine Authentifizierung geschützt, die verhindert, dass unbefugte Benutzer ihre Inhalte einsehen können. In einigen Fällen ist jedoch für bestimmte Inhalte keine Authentifizierung erforderlich; das auf der Hauptseite geladene Helpdesk-Logo muss beispielsweise auch für nicht authentifizierte Benutzer verfügbar sein. Während des Tests konnten wir mehrere Endpunkte in der Anwendung identifizieren, die für einen nicht authentifizierten Benutzer zugänglich waren. Darunter waren solche, auf die über den API-Pfad der Anwendung frei zugegriffen werden konnte. Jeder Benutzer konnte über den Endpunkt /api/v1/attachments/:id mit dem Aufruf “Anhang abrufen” interagieren. Uns fiel auch auf, dass der API-Pfad eine ID benötigt, um auf die Ticketanhänge zuzugreifen. Da die IDs numerisch und fortlaufend sind, erlaubte uns dies, einen vollständigen Datendump der Ticketanhänge zu erstellen. Die Schwachstelle ermöglicht es einem nicht authentifizierten Benutzer, die Ticketanhänge der Helpdesk-Software herunterzuladen und deren Inhalte einzusehen. Wir konnten darüber hinaus interne Informationen über die Infrastruktur des Kunden sowie Benutzerzugangsdaten und Mitarbeiter-E-Mail-Adressen erhalten. Infolgedessen kann ein Angreifer unter Verwendung der Informationen aus den Anhängen fortgeschrittenere Angriffe durchführen. Potenzielle Angriffsvektoren wären in diesem Fall Social-Engineering-Angriffe wie Phishing oder das Umgehen von Authentifizierungsverfahren unter Verwendung der in den Anhängen identifizierten Zugangsdaten.

3. Ausnutzung der Schwachstelle (Alles dumpen)

Der folgende Ausschnitt zeigt den Exploit, der es ermöglichte, die Ticketanhänge zu dumpen. Der Exploit besteht aus einer Schleife, die alle Sequenznummern von 1 bis 1.000.000 verarbeitet und Ticketanhänge aufruft. Ein vollständiger Dump der Anhänge könnte so erstellt werden.

#!/bin/sh

for i in $(seq 1 1000000)
do
  wget "https://target.zammad.com/api/v1/attachments/$i"
done

4. Identifizierung der Ursache der Schwachstelle & Schadensbegrenzung

Der nächste Schritt war die Entwicklung einer entsprechenden Schadensbegrenzung für die identifizierte Sicherheitslücke. Zu diesem Zweck wurde der Quellcode der Open-Source-Software analysiert. Der für das Leck verantwortliche Code wurde in der Datei /app/controllers/attachments_controller.rb identifiziert.

5. Reaktion des Herstellers

Die Schwachstelle wurde von unseren Beratern am 24. Juni 2022 sofort dem Anbieter der Helpdesk-Software gemeldet. Der Hersteller hat die Schwachstelle am 5. Juli 2022 gepatcht (Version 5.2.1). Der Sicherheitspatch stellt nun sicher, dass ein nicht authentifizierter Benutzer nicht mehr in der Lage ist, die Anhänge der Zammad-Helpdesk-Anwendung aufzurufen.

Für Interessierte: Hier ist der Git-Commit, der die Schwachstelle behebt.

Die Veröffentlichung der Schwachstelle finden Sie auf Zammads Advisories-Seite.

Lesen Sie über weitere interessante Themen in unserem Blog.