SICHERHEITSHINWEIS
Umgehen der Authentifizierung über den vom Client bereitgestellten `Remote-User`-Header
Nur auf Systemen mit ‚HTTPBasicAuth`-Backend
SICHERHEITSHINWEIS
Nur auf Systemen mit ‚HTTPBasicAuth`-Backend
In sehr spezifischen Konstellationen können in OTOBO Umgebungen mit ‚HTTP Basic Auth‘ Rechte / fremde Sessions abgegriffen werden.
Hier finden Sie alle Details zu der mit den heute veröffentlichten Patches geschlossenen Sicherheitslücke – welche Systeme im Detail betroffen sind und konkrete Handlungsempfehlungen für die unterschiedlichen Szenarien.
Beide ‚HTTP Basic Auth‘-Authentifizierungs-Backends akzeptieren die Übergabe der Benutzeridentität durch den HTTP-Client. Fehlt der üblicherweise vom Server bereitgestellte ‚REMOTE_USER‘, greift das Backend auf den Wert des HTTP-Anfrage-Headers `Remote-User` zurück, den jeder Client setzen kann. Ein Passwort wird in diesem Szenario nicht abgefragt.
In betroffenen Systemen können unauthentifierte Angreifer mit Zugang zu einem OTOBO Endpoint ohne externes Single Sign-on (SSO) Enforcement sich folglich durch Senden eines einfachen HTTP-Headers als beliebiger User – auch als Systemadministrator – anmelden.
Die Schwachstelle kann insbesondere dort ausgenutzt werden, wo der GenericInterface Endpoint `/otobo/nph-genericinterface.pl` vom SSO ausgeschlossen ist. Hier können API-Clients, die weder Kerberos noch SAML unterstützen, das SSO umgehen und sich direkt an OTOBO authentifizieren.
Betroffen sind – ausschließlich – Systeme auf die alle 3 folgenden Punkte zutreffen:
Installationen, bei denen der Webserver die Anfrage selbst authentifiziert und die PSGI-Variable `REMOTE_USER` setzt (beispielsweise Apache mit `mod_auth_gssapi` im CGI-, FastCGI- oder mod_perl-Modus), sind nicht direkt über die Variable – dennoch aber durch den Header-Fallback auf allen nicht derart geschützten Endpoint betroffen.
Die Sicherheitslücke wird durch Installation der heute veröffentlichten Sicherheits-Patches OTOBO 10.1.19 [Link auf Release Note], OTOBO 11.0.18 [Link auf Release Note], OTOBO 11.1 Beta 3 [Link auf Release Note] geschlossen.
Durch die Patches erfordert der Weg über den Header nun ein aktives Opt-in.
Statt eine beliebige ‚Remote-User‘-Variable zu nutzen, wird der Header künftig ignoriert, sofern nicht – alle 2 – nachstehenden Bedingungen erfüllt sind:
Das Shared Secret funktioniert für nginx, Apache (mod_proxy) und Traefik, weil in jedem Fall durch den Proxy ein einzelner Request Header gesetzt wird, der alle potenziell durch den Client übermittelten Werte überschreibt. Weiterhin empfehlen wir außerdem, den OTOBO Anwendungsport für nicht vertrauenswürdige Netzwerke unzugänglich zu halten.
Bestehende klassische Apache SSO-Implementierungen funktionieren wie bisher: Durch den Webserver selbst gesetzte ‚REMOTE_USER‘ werden weiterhin übernommen.
Auch die im Standard enthaltenen ningx-Templates und Apache-Beispielskonfigurationen wurden aktualisiert. Sie enthalten nun sichere Defaults – explizit auch sichere Beispielkonfigurationen für Ausnahmen für die REST API Schnittstelle („GenericInterface“) – sowie alle nötigen Informationen um einen sicheren Betrieb zu gewährleisten.
Das `WebServer::ProxySecret`-Setting wird nur durch `Kernel::System::Auth::HTTPBasicAuth` und `Kernel::System::CustomerAuth::HTTPBasicAuth`, und nur mit aktiver `TrustProxyHeader` Option ausgelesen. Umgebungen, in denen die Authentifizierung via DB, LDAP, OpenIDConnect, Radius oder ähnliche Backends erfolgt, sind nicht betroffen. Hier muss kein Secret definiert werden.
Der Fix für Systeme, die `HTTPBasicAuth` mit dem `Remote-User`-Header (Reverse-Proxy SSO) nutzen, ist bewusst auf „Fail-Closed“ ausgelegt: In betroffenen Systemen wird die User-Authentifizierung ausgesetzt, bis die neue Konfiguration vorgenommen wurde.
Schritte zum Wiederherstellen der SSO-Funktionalität:
1. Aktivieren von `AuthModule::HTTPBasicAuth::TrustProxyHeader` (und/oder der Kunden-Variante).
2. Konfiguriren von `WebServer::ProxySecret` (oder der Umgebungs-Variablen `OTOBO_PROXY_SECRET`).
3. Konfigurieren des Reverse-Proxy: Entfernen von Clients übermittelter Remote-User-Headern und Versenden des Secrets via `X-OTOBO-Proxy-Secret`. In den im Standard enthaltenen Templates sind diese Anpassungen bereits enthalten.
Docker-User, die unsere offiziellen HTTPS-/Kerberos-Stacks nutzen, setzen lediglich das `OTOBO_PROXY_SECRET` in der .env-Datei; die Übermittlung an nginx und den OTOBO Container erfolgt automatisch.
Allen Benutzern, die Ihre Systeme nicht sofort updaten können, empfehlen wir dringend bis zum Update folgende Schritte durchzuführen:
Wir danken Mokrane ABDELMALEK für die verantwortungsvolle Meldung dieser Schwachstelle. Die viele Jahre alte Vulnerability wurde im Rahmen des VDP-Programms an der Universität Gent identifiziert.
OTOBO 10.1.19 – Security Patch
OTOBO 11.0.18 – Security Patch
OTOBO 11.1.0 (Beta3) – Security Patch
Bitte aktualisieren Sie Ihr System schnellstmöglich
Danke an die Community und alle Mitwirkenden!
Support-Kunden melden sich einfach über das Portal oder rufen kurz an. Noch kein Support-Vertrag? Vielleicht ist jetzt der richtige Zeitpunkt.
OTOBO | Simplify work and create exceptional service experiences.
Die Source Code Owner und Maintainer hinter OTOBO.
Service Management-Plattform
OTOBO Demo
OTOBO Download
OTOBO Dokumentation
Security-Problem melden:
security@otobo.org

