Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
9-letnia podatność w Horde Webmail. Można przejąć skrzynkę pocztową użytkownika wysyłając mu e-maila. Łatki brak.
A więc jedziemy:
Podatność XSS została wprowadzona wraz z commitem 325a7ae – 9 lat temu. Prawdopodobnie dotyczy to wszystkich instancji Horde wdrożonych na dzień dzisiejszy i działa w domyślnych konfiguracjach.
This Stored XSS vulnerability was introduced with the commit 325a7ae, 9 years ago. It likely affects all the Horde instances deployed as of today and works under default configurations.
Teraz nieco lepsza informacja: aby skutecznie wyeksploitować lukę, trzeba rzeczywiście wysłać do ofiary e-mail. Ale ofiara musi podglądnąć załącznik (uwaga, wystarczy podglądnięcie, nie otwarcie).
Dla odmiany znowu zła informacja: na dzień dzisiejszy nie ma łatki, chociaż badacze wysyłali kilka razy monity do twórców Horde Webmail (pierwszy raz miało to miejsce ~pół roku przed publikacją).
Trochę technicznych szczegółów w telegraficznym skrócie:
- W załączniku atakujący przesyła plik OpenOffice (odt). Taki plik to zwykły zip o pewnej strukturze.
- Teraz jeśli Horde chce wygenerować podgląd takiego załącznika, odpala mechanizm XSLT (transformacja jednego XMLa w inny)
- Ale odt zawiera w sobie pewne (skompresowane do zipa) XMLe – być może uda się coś złego tam dorzucić?
- Teraz potrzebna znajomość XSLT, XPath oraz analizy kodu i można dojść do takiego payloadu (umieszczanego w jednym z XMLi wskazanych powyżej):
<draw:object><math:math><math:semantics><p>XSS payload: </p><script>alert(‘xss’);</script>
- Co teraz? Horde plik OpenOffice renderuje (do HTML), a JavaScript automatycznie atakuje. Poprzez np. kradzież ciastek sesyjnych użytkownika (mamy wtedy dostęp na jego konto webmail bez loginu/hasła), kradzież zawartości całej skrzynki pocztowej (wspominaliśmy tego typu payloady jakiś czas temu), czy wykonanie dowolnej operacji w kontekście zalogowanej sesji do webmaila
Jak żyć?
Do momentu pokazania się łatki, badacze sugerują workaround – czyli wyłączenie funkcji renderowania plików OpenOffice:
config/mime_drivers.php
/* OpenOffice.org/StarOffice document display. */
'ooo' => array(
'disable' => true, // <---- [ta wartość powinna być ustawiona na true]
'handles' => array(
'application/vnd.stardivision.calc',
'application/vnd.stardivision.draw',
// ...
~Michał Sajdak
Star Office w komentarzu wskazuje, że ten kod nie był ruszany od ładnych kilku lat
> Ale ofiara musi podglądnąć załącznik (uwaga, wystarczy podglądnięcie, nie
otwarcie).
podejrzeć, nie podglądnąć.