Nie każdy badacz najwyraźniej jest zwolennikiem odpowiedzialnej publikacji informacji o podatnościach – firma Klikki Oy opublikowała błąd typu stored XSS w najnowszym WordPressie 4.2, na który nie ma jeszcze łaty.
Błąd znajduje się w sposobie zapisywania zbyt długich komentarzy do bazy danych. Standardowo zapisywane są pierwsze 64 kilobajty, przez co odpowiednio długi komentarz zostanie obcięty i pozwoli na przemycenie tagów umożliwiających wstrzyknięcie JavaScriptu. Jeśli taki komentarz zostanie wyświetlony na stronie bloga przez administratora, to może to prowadzić do wykonania dowolnej operacji z jego uprawnieniami – np. zmiany hasła administratora czy dopisania fragmentu kodu PHP do szablonu bloga.
Najprostszą metodą zabezpieczenia jest włączenie obowiązkowej moderacji każdego komentarza – błąd nie działa w panelu administracyjnym, z którego można bezpiecznie złośliwe komentarze usuwać.
Według autora odkrycia podatne są co najmniej wszystkie wersje od 3.9.3 do 4.2 włącznie z bazami MySQL 5.1.53 oraz 5.5.41. Poniżej kod P0C oraz demonstracja działania błędu:
<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>
Komentarze
I tu pozostaje mi się cieszyć, że kilka dni temu na każdym blogu który prowadzę uruchomiłem wtyczkę disqus – w tym przypadku raczej nic nie grozi ;-) Tak czy siak, dzięki za te cenne wskazówki.
Nie są znowu tacy źli
http://seclists.org/fulldisclosure/2015/Apr/91
No chyba jednak nie, od tego są zabezpieczenia typu nonce, które w WordPressie są w każdym formularzu administracyjnym…