Die Ausgabe des Mailservers Exim 4.94.2 wurde veröffentlicht, in der 21 Sicherheitsanfälligkeiten (CVE-2020-28007-CVE-2020-28026, CVE-2021-27216) behoben wurden, die von der Firma Qualys entdeckt und unter dem Codenamen 21Nails präsentiert wurden. 10 der Probleme können aus der Ferne ausgenutzt werden (darunter die Ausführung von Code mit root-Rechten) durch Manipulation von SMTP-Befehlen im Kontakt mit dem Server.
Alle Versionen von Exim sind betroffen, deren Geschichte seit 2004 in Git verfolgt wird. Für 4 lokale Sicherheitsanfälligkeiten und 3 Remote-Probleme wurden Prototypen von Exploits vorbereitet. Exploits für die lokalen Sicherheitsanfälligkeiten (CVE-2020-28007, CVE-2020-28008, CVE-2020-28015, CVE-2020-28012) ermöglichen die Anhebung der eigenen Berechtigungen auf root. Zwei Remote-Probleme (CVE-2020-28020, CVE-2020-28018) ermöglichen das Ausführen von Code mit den Rechten des Exim-Benutzers ohne Authentifizierung (anschließend kann der Root-Zugang verwendet werden, indem eine der lokalen Sicherheitsanfälligkeiten ausgenutzt wird).
Die Sicherheitsanfälligkeit CVE-2020-28021 ermöglicht es, sofort aus der Ferne Code mit root-Rechten auszuführen, erfordert jedoch authentifizierten Zugang (der Benutzer muss eine authentifizierte Sitzung einrichten, bevor er die Sicherheitsanfälligkeit über Manipulation des AUTH-Parameters im MAIL FROM-Befehl ausnutzen kann). Das Problem entsteht dadurch, dass der Angreifer eine Injection in den Kopf der Spool-Datei erreichen kann, weil der Wert authenticated_sender ohne angemessene Escape-Sequenzen für Sonderzeichen aufgezeichnet wird (z. B. durch die Übermittlung des Befehls „MAIL FROM:<AUTH=Raven+0AReyes“).
Zusätzlich wird darauf hingewiesen, dass eine weitere Remote-Sicherheitsanfälligkeit CVE-2020-28017 für die Ausführung von Code mit den Rechten des Benutzers 'exim' ohne Authentifizierung ausgenutzt werden kann, aber mehr als 25 GB Speicher benötigt. Für die verbleibenden 13 Sicherheitsanfälligkeiten könnten möglicherweise auch Exploits vorbereitet werden, jedoch wurde in dieser Richtung bisher keine Arbeit geleistet.
Die Entwickler von Exim wurden bereits im Oktober letzten Jahres über die Probleme informiert und benötigten mehr als 6 Monate, um Korrekturen zu entwickeln. Allen Administratoren wird dringend geraten, Exim auf ihren Mailservern zu aktualisieren. Servern Bis zur Version 4.94.2. Alle Exim-Versionen vor der Veröffentlichung 4.94.2 werden als veraltet (obsolete) angesehen. Die Veröffentlichung der neuen Version wurde mit den Distributionen koordiniert, die gleichzeitig Paketupdates veröffentlicht haben: Ubuntu, Arch Linux, FreeBSD, Debian, SUSE und Fedora. RHEL und CentOS sind von diesem Problem nicht betroffen, da Exim nicht in deren standardmäßigen Paketrepository aufgenommen ist (im EPEL ist das Update derzeit nicht verfügbar).
Entfernte Schwachstellen:
- CVE-2020-28017: Ganzzahlüberlauf in der Funktion receive_add_recipient();
- CVE-2020-28020: Ganzzahlüberlauf in der Funktion receive_msg();
- CVE-2020-28023: Lesen aus einem Bereich außerhalb des zugewiesenen Puffers in der Funktion smtp_setup_msg();
- CVE-2020-28021: Einfügen eines neuen Zeilenumbruchs in den header der Spool-Datei;
- CVE-2020-28022: Schreiben und Lesen in einen Bereich außerhalb des zugewiesenen Puffers in der Funktion extract_option();
- CVE-2020-28026: Trimmen und Einfügen eines Strings in der Funktion spool_read_header();
- CVE-2020-28019: Absturz beim Zurücksetzen des Zeigers auf die Funktion nach einem Fehler in BDAT;
- CVE-2020-28024: Unterlauf des Puffers in der Funktion smtp_ungetc();
- CVE-2020-28018: Zugriff auf den Puffer nach seiner Freigabe (use-after-free) in tls-openssl.c
- CVE-2020-28025: Lesen aus einem Bereich außerhalb des zugewiesenen Puffers in der Funktion pdkim_finish_bodyhash().
Lokale Schwachstellen:
- CVE-2020-28007: Angriff über symbolische Links im Verzeichnis mit dem Exim-Log;
- CVE-2020-28008: Angriffe auf das Spool-Verzeichnis;
- CVE-2020-28014: Erstellen einer beliebigen Datei;
- CVE-2021-27216: Löschen einer beliebigen Datei;
- CVE-2020-28011: Pufferüberlauf in der Funktion queue_run();
- CVE-2020-28010: Schreiben außerhalb des Puffers in der Funktion main();
- CVE-2020-28013: Pufferüberlauf in der Funktion parse_fix_phrase();
- CVE-2020-28016: Schreiben außerhalb des Puffers in der Funktion parse_fix_phrase();
- CVE-2020-28015: Einfügen eines neuen Zeilenumbruchs in den header der Spool-Datei;
- CVE-2020-28012: Fehlendes close-on-exec-Flag für privilegierte unbenannte Kanäle;
- CVE-2020-28009: Ganzzahlüberlauf in der Funktion get_stdinput().
Quelle: opennet.ru
