Żądny wiedzy? Wbijaj na Mega Sekurak Hacking Party w maju! -30% z kodem: majearly

9-letnia podatność w Horde Webmail. Można przejąć skrzynkę pocztową użytkownika wysyłając mu e-maila. Łatki brak.

23 lutego 2022, 12:15 | W biegu | komentarze 2

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

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. SeeM

    Star Office w komentarzu wskazuje, że ten kod nie był ruszany od ładnych kilku lat

    Odpowiedz
  2. Torinthiel

    > Ale ofiara musi podglądnąć załącznik (uwaga, wystarczy podglądnięcie, nie
    otwarcie).

    podejrzeć, nie podglądnąć.

    Odpowiedz

Odpowiedz na SeeM