SOGo: Unvollständiger Fix lässt weitere Felder der Kalendereinladung Code ausführen
Der Fix aus 5.12.10 schützte nur die Beschreibung, während Ort, Organisator, Antwortkommentar und zwei Attributwerte derselben Karte weiter Code ausführten.
Advisory-ID: TP-2026-082
Produkt: SOGo (Groupware mit Webmail, Kalender und Adressbuch)
Schwachstellentyp: Client-Side Template Injection (CWE-1336)
CVE: beantragt (MITRE CNA-LR), Vergabe ausstehend
CVSS 3.1: 9.6 (Kritisch) · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
Betroffene Versionen: <= 5.12.10
Hersteller-Advisory: SOGo 5.12.11 Release Notes
Behoben in: 5.12.11
Gemeldet: 18. August 2026
Zusammenfassung
Der Fix aus SOGo 5.12.10 für TP-2026-081 schützte nur den Beschreibungsblock der Einladungskarte. Die übrigen Felder derselben kompilierten Karte blieben offen, darunter der Kommentar einer Antwort, der Anzeigename des Organisators und der Veranstaltungsort. Dazu kommen der Zweig, der eine nicht parsbare Kalenderdatei roh darstellt, und zwei Stellen, an denen Angreiferdaten in Attributwerte statt in Text geschrieben werden. Die Voraussetzungen sind dieselben wie zuvor: eine Mail an das Opfer genügt, ein Konto auf dem Server braucht der Angreifer nicht. Betreiber, die den Fix aus 5.12.10 eingespielt hatten, waren weiterhin angreifbar.
Ursache
Version 5.12.10 setzte ng-non-bindable auf genau einen Container der Karte, den Beschreibungsblock (UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox:302), und ergänzte eine Deny-List, die Angular-Interpolation aus dem fertig gerenderten Teil entfernt (UI/MailPartViewers/UIxMailPartICalViewer.m:589 und UI/MailPartViewers/UIxMailPartViewer.m:204). Die Geschwister-Container derselben kompilierten Karte blieben ungeschützt, nämlich der Kommentar einer Antwort (UIxMailPartICalViewer.wox:241), der Anzeigename des Organisators (:254) und der Veranstaltungsort (:271). Lässt sich die Kalenderdatei nicht parsen, stellt die Vorlage deren Rohinhalt in einem ebenfalls kompilierten pre-Block dar (UIxMailPartICalViewer.wox:20). Zwei weitere Stellen schreiben Angreiferdaten in Attributwerte statt in Text, die Adresse des Organisators in ein href (UIxMailPartICalViewer.wox:140 und :150) und den Dateinamen eines Anhangs in ein title (UI/Templates/MailPartViewers/UIxMailPartLinkViewer.wox:9 und UI/Templates/MailPartViewers/UIxMailPartImageViewer.wox:13), wo ein Anführungszeichen im Wert das Attribut vorzeitig beendet. Version 5.12.11 setzt ng-non-bindable auf alle kompilierten Container, maskiert Kommentar und Beschreibung serverseitig über stringByEscapingHTMLString und entfernt Anführungszeichen aus dem Dateinamen (UI/MailPartViewers/UIxMailPartViewer.m:343).
Proof of Concept
Content-Type: text/calendar; method=REQUEST
BEGIN:VCALENDAR
BEGIN:VEVENT
SUMMARY:Projekt-Update
LOCATION:{{1338*1338}}
END:VEVENT
END:VCALENDAR
-> die geoeffnete Einladung zeigt 1790244 im Feld Ort
Das Feld Ort liegt im selben kompilierten Bereich wie die Beschreibung, trug aber kein ng-non-bindable, deshalb wertet AngularJS den Ausdruck dort weiterhin aus. Dieselbe Wirkung erreichen der Kommentar einer Antwort, der Anzeigename des Organisators und eine absichtlich fehlerhafte Kalenderdatei, deren Rohinhalt in den kompilierten Block fällt.
Auswirkung
- Lesen, Versenden und Löschen von Nachrichten in der angemeldeten Sitzung des Opfers, wie bei TP-2026-081.
- Fortbestehendes Risiko für Betreiber, die bereits auf 5.12.10 aktualisiert hatten und die Schwachstelle damit als behoben ansahen.
- Ausbruch aus dem Attributwert über ein Anführungszeichen im Dateinamen eines Anhangs, wofür keine Kalendereinladung nötig ist, sondern eine beliebige Mail mit Anhang.
- Zugriff auf sämtliche Postfächer der Instanz, wenn das Opfer in
SOGoSuperUsernameseingetragen ist.
Referenzen
Steckt so etwas in Ihrer Software?
Diese Schwachstelle hat unser Team im Rahmen seiner Arbeit gefunden. Lassen Sie Ihre Anwendungen von denselben Spezialisten prüfen, mit einem Penetrationstest von turingpoint.
