Schwachstelle6 Min. Lesezeit

Exim: Die E-Mail-Adresse, die Mailserver übernahm

2019 ließ eine Lücke im Mailserver Exim Angreifer Befehle als root ausführen, versteckt in einer E-Mail-Adresse. Wie das funktionierte, der Wurm, der Fix.

Illustration: ein Ring mit dem CVSS-Wert 9,8, dazu der Titel Exim

Sofortmaßnahmen

  1. Prüfe die Exim-Version auf deinen Mailservern mit exim -bV: Eine Version von 4.87 bis 4.91 ohne den Patch deiner Distribution vom Juni 2019 ist für diese Sicherheitslücke offen.
  2. Aktualisiere Exim über die Sicherheitsupdates deiner Distribution oder auf die aktuelle Version 4.100.1 (Stand: 1. November 2026). Das Exim-Projekt betrachtet alle älteren Versionen als veraltet.
  3. Wenn eine verwundbare Version aus dem Internet erreichbar war, such nach Spuren eines Angriffs: unbekannte Cronjobs, unbekannte SSH-Schlüssel für root, neue Benutzer mit Administratorrechten und geänderte Firewall-Regeln.
  4. Durchsuche deine Mail-Logs nach Absender- oder Empfängeradressen, die ${run{ enthalten: Das sind Versuche, die Sicherheitslücke auszunutzen.
Jahr
2019
CVSS-3.1-Wert
9,8 kritisch
Millionen Systeme zeigten im Juni 2019 in den Suchergebnissen von Shodan eine verwundbare Exim-Version (mehr als; Daten von Tenable)
4,1
Tage nach der Veröffentlichung warnte Microsoft vor einem aktiven Wurm
8
Warum der Fall auf der Liste steht
  • Reichweite erfüllt

    Eine Shodan-Suche fand einen Tag nach dem Fix mehr als 4,1 Millionen Systeme mit Exim 4.87 bis 4.91, gegenüber 475.591 mit der korrigierten Version 4.92 (Tenable, Anbieterdaten, Juni 2019). Im Oktober 2019 waren allein in Großbritannien noch mehr als 174.000 Exim-Server für diese oder zwei spätere Exim-Lücken offen (NCSC).

  • Massenausnutzung erfüllt

    Ein Wurm verbreitete sich selbstständig: Ein Skript auf gekaperten Servern durchsuchte das Internet nach verwundbaren Exim-Servern und griff sie an (Canadian Centre for Cyber Security, 14. Juni 2019). Microsoft bestätigte den aktiven Wurm am 13. Juni 2019 (Microsoft Security Response Center).

  • Schaden nicht erfüllt

    Eine Gesamtsumme des Schadens ist nicht dokumentiert. Die Behörden berichten von Krypto-Minern auf gekaperten Servern, von kanadischen Opfern noch im Mai 2020 und von Angriffen einer Hackergruppe des russischen Militärs, aber ohne Zahlen (NCSC; Canadian Centre for Cyber Security; CISA).

  • Außergewöhnliche Reaktion nicht erfüllt

    Behörden in den USA, in Großbritannien und in Kanada warnten. Das NCSC informierte betroffene britische Anbieter. Eine Notfallanweisung oder die höchste Warnstufe ist jedoch nicht dokumentiert (CISA; NCSC; Canadian Centre for Cyber Security).

Wie eine Schwachstelle auf diese Liste kommt

Steckbrief
BetroffenExim, ein Mailserver für Linux- und Unix-Systeme
CVECVE-2019-10149
CVSS-VektorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Schwachstellentyp (CWE)CWE-78
Behoben inExim 4.92 (10. Februar 2019, unbemerkt); Patch für die Versionen 4.87 bis 4.91 (5. Juni 2019)
In der CISA-Liste ausgenutzter Schwachstellen seit10. Januar 2022
Gefunden vonQualys Research Labs
Zeitleiste
  1. 1Exim 4.87 schaltet den fehlerhaften Code standardmäßig ein
  2. 2Exim 4.92 behebt den Fehler, doch niemand bemerkt, dass er eine Sicherheitslücke war+1040 Tage
  3. 3Dem Hersteller gemeldet+1146 Tage
  4. 4Exim warnt vor einem möglichen Angriff aus der Ferne, noch ohne Details+1153 Tage
  5. 5Veröffentlicht+1155 Tage
  6. 6Patch verfügbar+1155 Tage
  7. 7Erste Angriffe beobachtet+1159 Tage
  8. 8Microsoft bestätigt einen aktiven Wurm, der sich über die Sicherheitslücke verbreitet+1163 Tage
  9. 9Ein fertiges Metasploit-Modul macht den Angriff leicht+1234 Tage
  10. 10Die NSA meldet, dass der russische Militärgeheimdienst die Sicherheitslücke seit mindestens August 2019 ausnutzt+1513 Tage
  11. 11In die CISA-Liste ausgenutzter Schwachstellen aufgenommen+2105 Tage

Am 5. Juni 2019 veröffentlichte das Exim-Projekt einen Fix für eine Sicherheitslücke. Über sie konnten Angreifer auf einem Mailserver beliebige Befehle als root ausführen, also mit den Rechten des Administratorkontos. Dazu mussten sie den Befehl nur in einer E-Mail-Adresse verstecken. Exim ist ein Mailserver: das Programm auf einem Linux- oder Unix-Rechner, das E-Mails aus dem Internet annimmt und zustellt. Das Sicherheitsunternehmen Qualys fand die Lücke und nannte sie „The Return of the WIZard“. Acht Tage später warnte Microsoft vor einem Wurm, der sich über die Lücke von Server zu Server verbreitete. Ein Wurm ist ein Programm, das sich selbst weiterverbreitet.

So funktionierte der Angriff

Exim hat für seine Einstellungen eine kleine eingebaute Sprache. Text in der Form ${...} füllt Exim erst aus, während es eine E-Mail bearbeitet, ähnlich wie bei einem Serienbrief. Einer dieser Platzhalter, ${run{...}}, startet ein Programm.

Seit Version 4.87, erschienen am 6. April 2016, schickte Exim die Empfängeradresse durch diese Funktion, wenn die Zustellung auf bestimmte Weise scheiterte. Ein Angreifer musste nur einen Befehl in die Adresse schreiben, etwa ${run{...}}@localhost, und dafür sorgen, dass die Zustellung scheiterte. Ein Weg war, mehr als 30 „Received“-Zeilen einzufügen, also die Stempel, die jeder Mailserver unterwegs hinzufügt. Dann nahm Exim an, die E-Mail hänge in einer Schleife fest. Den Befehl führte es als root aus, denn standardmäßig behält es diese Rechte, während es E-Mails zustellt. Einen Trick mit dem Arbeitsspeicher brauchte es nicht.

Auf dem Server selbst konnte jeder Benutzer das sofort tun. Aus dem Internet war es schwieriger, weil Exim in den Standardeinstellungen nur Adressen echter Benutzer auf dem Server annimmt. Einige Änderungen an diesen Einstellungen räumten das Hindernis aber aus dem Weg, etwa wenn ein Server als Backup-Mailserver E-Mails für eine andere Domain annahm. Selbst für die Standardeinstellungen fand Qualys einen Weg. Der Angreifer brachte Exim dazu, eine Fehlermeldung an einen Server unter seiner Kontrolle zu schicken. Diese Verbindung hielt er sieben Tage lang offen und sendete alle vier Minuten ein Byte. Nach sieben Tagen gab Exim die Nachricht auf und führte den Befehl aus.

  1. Angreiferschickt eine E-Mail mit einem Befehl in der Empfängeradresse
  2. Eximkann die E-Mail nicht zustellen und bearbeitet den Fehler
  3. Expansionliest die Adresse als Vorlage und findet den run-Befehl
  4. Serverführt den Befehl als root aus
Auf dem Server selbst funktionierte der Angriff sofort; aus dem Internet brauchte er eine geänderte Einstellung oder eine sieben Tage lang offene Verbindung.

Der Name spielt auf WIZ und DEBUG an, zwei alte Lücken in Sendmail, einem älteren Mailserver, über die ebenfalls Außenstehende Befehle ausführen konnten.

Reichweite und Angriffe

Weil niemand den Fehler als Sicherheitslücke erkannt hatte, lieferten die meisten Betriebssysteme noch eine betroffene Version aus, schrieb Qualys. Das Unternehmen führte den Angriff an einem aktuellen Debian 9.9 vor. Einen Tag nach dem Fix durchsuchte das Sicherheitsunternehmen Tenable die Suchmaschine Shodan. Sie hält fest, was Server im Internet über sich preisgeben. Tenable fand mehr als 4,1 Millionen Systeme mit Exim 4.87 bis 4.91 und 475.591 mit der korrigierten Version 4.92. Fast 90 % der gefundenen Exim-Systeme waren also für die Lücke offen.

Exim-Versionen in den Suchergebnissen von Shodan, Juni 2019
Exim 4.87206.024
Exim 4.8824.608
Exim 4.89206.571
Exim 4.905.480
Exim 4.913.738.863
Exim 4.92, korrigiert475.591

Systeme, die einen Tag nach dem Fix die jeweilige Version zeigten; die Versionen 4.87 bis 4.91 hatten die Lücke. Anbieterdaten von Tenable.

Solche Zählungen beruhen auf der Versionsnummer, die ein Server anzeigt. Debian etwa korrigierte sein Exim 4.89 am 5. Juni 2019 mit einem Update, ohne diese Nummer zu ändern. Nicht jedes gezählte System blieb also offen.

Die Angriffe begannen schnell. Am 9. Juni, vier Tage nach dem Fix, meldete ein Sicherheitsforscher die ersten Versuche, die Lücke auszunutzen. Am 13. Juni bestätigte Microsoft einen aktiven Wurm. Der Konzern forderte die Kunden seiner Cloud Azure auf, ihre virtuellen Server zu patchen oder den Zugang zu ihnen einzuschränken. Am 14. Juni beschrieb das Canadian Centre for Cyber Security, die kanadische Cyberbehörde, die Angriffe. Eine erste E-Mail brachte den Server dazu, Schadsoftware herunterzuladen. Danach sorgte eine geplante Aufgabe dafür, dass die Angreifer auf dem Server blieben. Mit einem hinzugefügten Schlüssel konnten sie sich über SSH, den Dienst für Fernanmeldungen, als root anmelden. Ein Skript suchte im Internet nach weiteren verwundbaren Exim-Servern und griff sie an. Um sich zu tarnen, nutzten die Angreifer Tor, ein Netzwerk für anonyme Verbindungen.

Die meisten dieser Angriffe installierten Krypto-Miner, schrieb das britische National Cyber Security Centre (NCSC) im Oktober 2019. Solche Programme lassen einen gekaperten Server Kryptowährung erzeugen. Seit dem 23. August 2019 machte ein fertiges Modul für Metasploit, ein verbreitetes Werkzeug für Angriffe, den Angriff leicht. Das NCSC zählte allein in Großbritannien mehr als 174.000 Exim-Server, die noch für diese Lücke oder für zwei im September 2019 gefundene Exim-Lücken offen waren.

Im Mai 2020 meldete der US-Geheimdienst National Security Agency (NSA), dass Sandworm die Lücke seit mindestens August 2019 ausnutzte. Sandworm ist eine Hackergruppe des russischen Militärgeheimdienstes GRU. Das NCSC schloss sich diesen Erkenntnissen an und informierte die betroffenen Anbieter in Großbritannien. Wenige Tage später meldete die kanadische Cyberbehörde Opfer in Kanada, zuletzt durch Angriffe im Mai 2020. Im Jahr 2020 fand das Sicherheitsunternehmen Rapid7 noch etwa 87.500 Server mit einer verwundbaren Version im Internet. Wie groß der Schaden durch die Angriffe war, ist nicht dokumentiert.

Der Fix und die Reaktion

Das Seltsamste an der Geschichte: Die Lücke war bereits behoben. Exim 4.92, erschienen am 10. Februar 2019, hatte den Code geändert, doch niemand hatte bemerkt, dass die Änderung eine Sicherheitslücke schloss. Qualys fand die Lücke, als es die jüngsten Änderungen an Exim prüfte, und meldete sie am 27. Mai 2019. Das Exim-Team schrieb noch am selben Tag einen Patch.

Am 3. Juni warnte das Team, ein Angriff aus der Ferne sei möglich, noch ohne Details. Es plante eine abgestimmte Veröffentlichung für den 11. Juni, damit die Linux-Distributionen ihre Updates vorbereiten konnten. Weil Details durchgesickert waren, veröffentlichte es den Fix vorzeitig, am 5. Juni um 15:15 Uhr UTC. Debian brachte sein Update noch am selben Tag heraus. Qualys veröffentlichte seinen Sicherheitshinweis ebenfalls an diesem Tag, zunächst ohne die Angriffsmethoden, und die vollständige Fassung am 6. Juni.

Für die alten Versionen brachte das Exim-Team kein neues Release heraus, weil es sie als veraltet betrachtete. Betreiber mussten das Update ihrer Distribution installieren oder auf Version 4.92 wechseln. Im Mai 2020 riet das NCSC den Anbietern, sofort Version 4.93 oder neuer zu installieren.

Die US-amerikanische National Vulnerability Database bewertet die Lücke auf CVSS 3.1 mit 9,8 von 10, also als „kritisch“. Red Hat gibt ihr auf der älteren Version 3.0 eine 9,0 und stuft den Angriff als schwerer durchführbar ein. Die US-Cyberbehörde CISA nahm die Lücke am 10. Januar 2022 in ihre Liste ausgenutzter Schwachstellen auf.