Forscher von SEC Consult haben eine neue Spoofing-Technik veröffentlicht, die durch unterschiedliche Interpretationen der Spezifikation in verschiedenen Implementierungen des SMTP-Protokolls verursacht wird. Die vorgeschlagene Angriffstechnik ermöglicht es, eine Nachricht in mehrere verschiedene Nachrichten zu zerlegen, während sie vom ursprünglichen SMTP-Server an einen anderen SMTP-Server übertragen wird, der die Reihenfolge für die Trennung von E-Mails, die über eine Verbindung gesendet werden, anders interpretiert. Diese Methode kann verwendet werden, um gefälschte E-Mails im Namen anderer Absender in E-Mail-Diensten zu senden, die den ursprünglichen Absender verifizieren.
Das Problem entsteht dadurch, dass verschiedene SMTP-Server die Sequenz zum Beenden der Daten unterschiedlich interpretieren, was dazu führen kann, dass eine E-Mail in mehrere innerhalb eines einzelnen SMTP-Server-Sitzungstransfers aufgeteilt wird. In der Spezifikation für die Kennzeichnung des Endes der E-Mail-Übertragung ist die Sequenz "\r\n.\r\n" (Punkt, umrahmt von Wagenrücklauf und Zeilenumbruch) definiert. Nach dieser Sequenz können Befehle zur Übertragung einer anderen E-Mail folgen, ohne die Verbindung zu trennen. Einige SMTP-Server halten sich strikt an die Vorgaben, während andere zur Gewährleistung der Kompatibilität mit einigen seltenen E-Mail-Clients auch solche Sequenzen wie "\n.\n", "\n.\r\n", "\r\n.\n", "\r.\r", "\r\n\0.\r\n" und "\r\n\0.\r\n" als Trennzeichen behandeln.
Der Angriff besteht darin, dass an den ersten der Server, der nur das Trennzeichen "\r\n.\r\n" verarbeitet, eine E-Mail gesendet wird, deren Inhalt ein alternatives Trennzeichen enthält, wie z.B. "\r.\r", gefolgt von den Befehlen zum Senden der zweiten Nachricht. Da der erste Server sich strikt an die Spezifikation hält, interpretiert er die empfangene Sequenz als eine einzige E-Mail. Wenn die E-Mail dann an einen Transitserver oder einen Empfängerserver weitergeleitet wird, der zusätzlich die Sequenz "\r.\r" als Trennzeichen behandelt, wird sie als zwei unabhängig gesendete E-Mails verarbeitet (die zweite E-Mail kann im Namen eines Benutzers gesendet werden, der sich nicht über "AUTH LOGIN" authentifiziert hat, sieht jedoch auf der Empfängerseite korrekt aus).


Zu den Beispielen für SMTP-Server und -Dienste, die alternative Trennzeichen zulassen, gehören Postfix, Sendmail, MS Exchange Online und Cisco Secure Email Gateway, während unter den E-Mail-Diensten, die inkorrekte Trennzeichen in E-Mails bei Anfragen an andere Server nicht filtern, GMX, iCloud und Microsoft Outlook erwähnt werden.
Um das Problem in Postfix zu blockieren, wurde in den Versionen 3.8.1, 3.7.6, 3.6.10 und 3.5.20 die Einstellung „smtpd_forbid_unauth_pipelining“ hinzugefügt, die die Verbindung trennt, wenn Trennzeichen verwendet werden, die nicht den Anforderungen von RFC 2920 und RFC 5321 entsprechen. Derzeit ist diese Einstellung standardmäßig deaktiviert, soll aber in der Postfix-Version 3.9, die im Frühjahr 2024 erwartet wird, standardmäßig aktiviert werden. In der Version 3.9 wird auch die Einstellung smtpd_forbid_bare_newline aktiviert, die einen Fehler ausgibt, wenn nur das Zeilenumbruchzeichen („\n“) zur Trennung von Zeilen verwendet wird, was gegen RFC 5321 verstößt.
In der kommenden Version Sendmail 8.18.0.2 wird zum Schutz vor dem Angriff in srv_features die Option ‘o’ vorgeschlagen, die nur die Verarbeitung der Sequenz "\r\n.\r\n" aktiviert. Es wird darauf hingewiesen, dass das Deaktivieren der Unterstützung von alternativen Trennzeichen die Funktion einiger seltener E-Mail-Clients, die die SMTP-Spezifikation nicht vollständig einhalten, beeinträchtigen kann.
Quelle: opennet.ru
