9:11
27/4/2015

* [0day] WordPress 4.2 stored XSS

W WordPressie 4.2 znaleziono możliwość wstrzyknięcia kodu JavaScript poprzez komentarze. XSS nie pojawia się w Dashboardzie administratora, wiec aby atak nieautoryzowanego wykonania kodu (poprzez nadużycie funkcji szablonów i wtyczek) się udał, atakujący musi mieć możliwość publikacji komentarzy (nie może trafić do moderacji).

Kod JavaScript można przemycić wykorzystując skracanie komentarzy, jakie następuje po umieszczeniu w bazie tekstu powyżej 64kb. Przykładowy exploit:

<a title='x onmouseover=alert(unescape(/hello%20world/.source)) style=position:absolute;left:0;top:0;width:5000px;height:5000px AAAAAAAAAAAA...[64 kb]..AAA'></a>

Ponieważ póki co nie ma łatki, odkrywca błędu sugeruje całkowicie wyłączyć komentowanie całkowicie. Z naszej strony dodamy mniej restrykcyjne (co nie znaczy, że zawsze łatwe do wdrożenia) metody ochrony: wymuszenie moderacji, ograniczenie wielkości żądania POST kierowanego do serwera, wdrożenie Content Securty Policy.

Przeczytaj także:

Ten wpis pochodzi z naszego linkbloga *ptr, dlatego nie widać go na głównej.
*ptr możesz czytać przez RSS albo przez sidebar po prawej stronie serwisu.

21 komentarzy

Dodaj komentarz
  1. Twój kod HTML nie może zostać zaakceptowany: Odwołanie “x onmouseover=alert(unescape(/hello%20world/.source)) style=position:” nie jest dozwolone: A

  2. Nie ładnie ze strony z odkrywcy, ze nie zgłosił najpierw wordpressowi. To bardzo nie white hatowe zachowanie. A czy nbzp juz się zabezpeczył? :D

    • Niebezpiecznik jest domyślnie zabezpieczony, bo moderują wszystkie (?) komentarze. Wg artykułu atak nie zadziała, jeśli komentarz trafi do kolejki oczekujących.

    • “WordPress has refused all communication attempts about our ongoing security vulnerability cases since November 2014. We have tried to reach them by email, via the national authority (CERT-FI), and via HackerOne. No answer of any kind has been received since November 20, 2014. According to our knowledge, their security response team have also refused to respond to the Finnish communications regulatory authority who has tried to coordinate resolving the issues we have reported, and to staff of HackerOne, which has tried to clarify the status our open bug tickets.”

  3. Ale na pewno całkowicie wyłączyć wyłączyć komentowanie? :)

  4. całkowicie całkowicie ;)

  5. Istnieje jakaś wtyczka dla WP, która podniesie jego bezpieczeństwo lub przynajmniej da info, że strona została przejęta?

    • Podniesie albo obniży wprowadzając dodatkowe miejsce na błędy.

    • Istnieje, zrób stronę w WP i zrób lustro w HTMLu :D, potem podmień stronę ^^

  6. Dodam od siebie: Zmiana WP na coś innego ;)

    • Co polecasz?

    • jakaś konkretna propozycja, czy tak tylko piszesz? na pewno gdyby każdy stawiałby własny CMS sytuacja by się nie poprawiła

    • Ja osobiście polecam MODx, gdzie nie ma żadnych ograniczeń :)
      http://modx.com

  7. To jest świeży błąd w WP 4.2 (wyszedł niedawno) czy starsze wersje tez go mają?

    • Z podlinkowanego tekstu.
      “Confirmed vulnerable: WordPress 4.2, 4.1.2, 4.1.1, 3.9.3. Tested with MySQL versions 5.1.53 and 5.5.41.”

  8. Zaraz zaraz, czy ja dobrze rozumiem że to znaczy że podane są tylko serwery które pozawalają na wysłanie POSTa dłuższego niż 64kB? Kto pozwala na takie wielkości anyway?

    • 64kB to niby dużo na POSTa?

    • A czym są wysyłane pliki jak nie POSTem?

      Nawet zwykły zrzut ekranu z łatwością przekroczy 64kB. Nie wspominając już o zdjęciach.

  9. Juz wydali 4.2.1 Security Release

    https://wordpress.org/news/2015/04/wordpress-4-2-1/

    Pozdrawiam.

    Andrzej

    • Dobę po opublikowaniu podatności. Jak na tak duży zespół to zdecydowanie za długo.

  10. “odkrywca błędu sugeruje całkowicie wyłączyć komentowanie całkowicie.”
    Podwójne zaprzeczenie, czyli ukryty przekaz by jednak nie wyłączać!

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.