Mitte Juli 2023 wurden zwei kritische Sicherheitslücken in Benno MailArchiv entdeckt.
Das eine Problem betrifft eine kritische XSS-Lücke (Cross Site Scripting), das andere ist eine kritische XSRF-Lücke (Cross-Site Request Forgery).

Für die beiden Sicherheitslücken wurden CVE-Nummern vergeben:

  • CVE-2023-38347 (für die XSS-Lücke)
  • CVE-2023-38348 (für die XSRF-Lücke)

Lösung:

Bitte aktualisieren Sie Ihre Benno MailArchiv Installation zeitnah auf die neueste Version! Durch die Installation der Pakete benno-web (Version 2.10.2) und benno-rest (Version 2.10.1) werden die beiden relevanten Komponenten aktualisiert. Die beiden kritischen Sicherheitslücken sind darin geschlossen.

Wichtiger Hinweis zum Update:

Das Update erzwingt direkt ab der Installation die Nutzung von HTTPS (also SSL-verschlüsseltem http) für die WebApp! 
Nach dem Update ist ein Login in die Benno WebApp nur noch per HTTPS möglich!

Es besteht weiterhin die Möglichkeit, das Login für HTTP (unverschlüsselt) zu nutzen. Dies muss jedoch gezielt aktiviert werden. In diesem Beitrag im Benno Wiki ist die Aktivierung von Plaintext HTML Login erläutert: https://wiki.benno-mailarchiv.de/doku.php/http_plaintext_access

ACHTUNG – WICHTIG:
Die XSS-Lücke wird nur durch die Nutzung von HTTPS wirksam geschlossen!
Wird die Installation wie vor beschrieben manuell auf Plaintext HTML Login umgestellt, bleibt die XSS-Sicherheitslücke weiter wirksam und der Server ist danach wieder über die Sicherheitslücke angreifbar!

Weitere Informationen zu den beiden kritischen Sicherheitslücken:

Bzgl. CVE-2023-38347 (XSS-Lücke):
Die Benno WebApp zeigt E-Mails in der Weboberfläche ungefiltert an. Vor der Anzeige von HTML-Code wird dieser nicht auf schädlichen JavaScript-Code usw. untersucht bzw. wird dieser nicht herausgefiltert.
Enthält eine archivierte Mail einen gezielt ausgerichteten, schädlichen JavaScript-Code und wird diese Mail von einem Anwender in der Benno WebApp angezeigt, kann der JavaScript-Code auf das Session-Cookie zugreifen, dieses auslesen und die Informationen an den Angreifer übermitteln. Ein Angreifer wäre so bspw. in der Lage, die Benno MailArchiv-Zugansgdaten des betroffenen Anwenders zu exfiltrieren und seinerseits Zugang zu dem Mailarchiv (soweit per Internet erreichbar) zu erhalten. Ebenso wäre es über diesen Weg möglich, das Passwort des eingeloggten Benno WebApp-Benutzers zu ändern. (Dieser Angriffsvektor ist zeitlich auf die Lebensdauer des Session-Cookies begrenzt. Das Beenden des Web-Browser des Opfers macht das Session-Cookie ungültig).
Im Paket benno-web wurde das Cookie Handling durch Erweiterung des httponly Modus und den Einsatz von Secure Cookies geändert. Den Formularen in benno-web wurde ein CSRF Token hinzugefügt. Durch diesen kann der Webserver nun feststellen, ob das Absenden eines Formulars von einem legitimen Benutzer über den Browser des Benutzers abgesendet wurde oder nicht. Mit der aktualisierten Version von benno-web und benno-rest wird diese XSS-Sicherheitslücke geschlossen. Vor der Anzeige von HTML-formatierten Mails wird JavaScript-Code nun innerhalb von benno-rest entfernt.

Bzgl. CVE-2023-38348 (XSRF-Lücke):
Durch die XSRF-Sicherheitslücke kann ein Adminstrator bspw. durch einen Link auf eine vorbereitete  Seite geleitet und dort dann dazu gebracht werden, sein Passwort zu ändern oder andere Einstellungen vorzunehmen – die danach in Hände des Angreifers gelangen können. Angreifer haben als “man in the middle” so die Möglichkeit, Zugangsdaten und andere durch den Administrator über die WebApp eingestellte Merkmale zu erlangen.
Im Paket benno-web wurde nun die Verwendung von CSRF-Tokens eingeführt. Beim Login eines Benutzers erstellt benno-web jeweils einen solchen CSRF-Token. Dieser wird in der Session verwaltet und verfällt nach Ende der Session. benno-web fügt diesen CSRF Token jedem Webformular (als Hidden Tag) bei, die beim Absenden Veränderungen auf einer Datenbasis verursachen (bspw. Passwort ändern, Benutzer anpassen etc.). Sendet bspw. ein Administrator damit eine Änderung ab, so wird dieser Token mitgesendet und überprüft, ob dieser gleich ist mit dem in der Session ausgestellten. “Man in the middle” Angriffe werden zukünftig somit wirksam unterbunden.
Mit der aktualisierten Version von benno-web und benno-rest wird diese Sicherheitslücke geschlossen.