Pääsivu | Tiedotteet

Google Analytics by Yoast: stored XSS -haavoittuvuus

19.03.2015

Päivitetty 20.03.2015: lisätty teknisiä yksityiskohtia ja YouTube-demo.

Yleistä

Google Analytics by Yoast on kävijätilastointiin tarkoitettu WordPress-lisäosa. Noin seitsemällä miljoonalla latauksellaan se on yksi suosituimmista Wordpressin liitännäisistä.

Ohjelmistossa on tietoturvaongelma, jonka avulla ulkopuolinen, sisäänkirjautumaton hyökkääjä voi ujuttaa HTML-koodia ja JavaScriptiä WordPressin ohjausnäkymään. Hyökkääjän JavaScript-koodi suoritetaan, kun ylläpitäjä käy lisäosaan liittyvässä asetuspaneelissa. Syötetty koodi tallentuu järjestelmään odottamaan suoritusta. Kohdekäyttäjältä ei edellytetä muita toimia.

Huolimatta koodin säännöllisestä auditoinnista vuodesta 2014 lähtien, nyt ilmi tullut haavoittuvuus on kriittinen ja ilmeisesti vakavin koskaan raportoitu tietoturvaongelma Yoastin WordPress-lisäosissa.

Oletusasetuksilla hyökkääjä voi käyttää haavoittuvuutta haluamansa PHP-koodin suorittamiseen palvelimella teema- ja lisäosaeditorien kautta. Vaihtoehtoisesti hän voi vaihtaa ylläpitäjän salasanan, luoda uusia ylläpitotunnuksia, tai tehdä mitä tahansa muuta sisään kirjautuneen ylläpitäjän oikeuksin.

Klikki Oy paikallisti virheen helmikuun lopulla, mutta sen täysi vakavuus ei selvinnyt ennen tarkempaa tutkimusta maaliskuussa. Lisäosaan on nyt saatavilla valmistajan tekemä korjaus.

Yksityiskohdat

Taustalla on kaksi ongelmaa. Ensinnäkin puutteellisen pääsykontrollin takia sisään kirjautumaton käyttäjä pystyy muuttamaan joitakin Google Analytics by Yoast -lisäosan asetuksia. Google Analyticsin OAuth2-autentikointitiedot voidaan ylikirjoittaa ja siten korvata sivustolla käytetty Google Analytics -käyttäjätili hyökkääjän omalla.

Toiseksi, lisäosa tuottaa mainitun Google Analytics -tilin tietojen pohjalta HTML-valikon WordPressin ohjausnäkymään. Tätä syötettä ei tarkisteta erikoismerkkien varalta, joten hyökkääjän Google Analyticsin asetuksiin kirjoittama HTML-koodi, mukaan lukien <script>-tagit, päätyvät sellaisenaan kohdejärjestelmän WordPress-ohjausnäkymään. Näin ujutettu JavaScript suoritetaan, kun joku ylläpitäjistä käy Google Analytics by Yoastin asetuspaneelissa.

Esimerkkikoodi

Katso englanninkielinen versio.

Demo

Korjaus

Valmistajalle ilmoitettiin ongelmasta 18.03.2015. Ylläpitäjien tulisi päivittää lisäosa versioon 5.3.3, joka julkaistiin 19.03.2015.

Tekijä

Haavoittuvuuden löysi Klikki Oy:n Jouko Pynnönen osana Facebookin bug bounty -ohjelmaan liittyvien sivustojen tutkintaa. Tämä on kuudes tässä yhteydessä löytynyt WordPress-lisäosien haavoittuvuus. Tämä ja aiemmat virheet löytyivät käyttämällä kehittämäämme PHP Multipass -koodianalysaattoria.

Aiemmin julkaistuihin ongelmiin kuuluu neljä haavoittuvuutta WPML-lisäosassa. Syyskuussa 2014 Klikki Oy havaitsi kriittisen stored XSS -ongelman Wordpressin ytimessä. Se koski noin 90% kaikista WordPress-sivustoista. Marraskuussa paikallistimme toisen WordPress-ytimen haavoittuvuuden, jolla on sama vaikutus. Se koskee kaikkia versioita 3.0:sta (mahdollisesti aiemmista) 4.2 betaan. Korjausta tähän haavoittuvuuteen ei ole vielä julkaistu.

Lisätietoja

Uutisia