WordPress 4.0.1 – závažná bezpečnostní aktualizace

Už více než dva měsíce byla první opravná verze pro WordPress 4.0 netrpělivě očekávána, ale stále pravidelně odkládána. V průběhu vývoje bylo totiž zjištěno několik závažných bezpečnostních problémů, které musely být nejdříve řádně vyřešeny a otestovány. A co tedy nový WordPress 4.0.1 konkrétně opravuje?

Hned na začátek připomínám, že nemusíte vůbec nic řešit, protože se WordPress automaticky aktualizuje zcela sám a pouze dostanete emailem informaci, že všechno dobře dopadlo. O závažnosti bezpečnostních problémů svědčí i nově vydané aktualizace starších verzí, takže je dostupný také WordPress 3.7.5, 3.8.5 a 3.9.3. I v tomto případě by měla proběhnout automatická aktualizace (zprovozněna byla poprvé ve WordPressu 3.7) a ještě k tomu dostanete další email s upozorněním na možnost aktualizace na nejnovější WordPress 4.0.1.

Pokud jste z nějakého důvodu ještě neaktualizovali (nebo máte aktualizace zcela vypnuté) a používáte nějakou starší verzi, tak tentokrát určitě neváhejte. Pokud nemáte administrátorská práva a všimnete si (např. na Nástěnce), že používáte nějakou starou verzi, tak kontaktujte svého správce webu a upozorněte ho na nutnost aktualizace. Sešlo se nám totiž hned několik závažných bezpečnostních problémů, které by se určitě neměly podceňovat. Zkusím je trochu blíže popsat, aby bylo každému zřejmé, že jsou potenciálně velmi nebezpečné.

Nejdůležitější je asi kritická chyba, která umožňuje anonymním uživatelům zneužít administrátorská práva (ovlivněny jsou pouze verze 3.9.2 a starší). Útok je v tomto případě velmi jednoduchý, v podstatě stačí jen vložit komentář, který obsahuje škodlivý Javascriptový kód a jakmile si tento komentář správce webu prohlédne v administraci (a je tedy přihlášen, aby ho třeba schválil nebo odstranil), tak dojde k jeho skrytému spuštění s potřebnými administrátorskými právy (a vytvořen je např. nový administrátorský účet). Můžeme tedy patrně brzy očekávat nové roboty, kteří budou vkládat “zavirované” komentáře a po čase kontrolovat, zda se nepodařilo získat nový administrátorský přístup (a tedy administrátor komentář v administraci viděl). Chyba byla přímo ve funkci wptexturize(), která špatně zpracovávala obsah vkládaného komentáře, respektive bylo možné poměrně přísná pravidla obejít (oprava).

Vývojáři WordPressu odhalili další tři bezpečnostní chyby (Cross-site scripting), kdy mohli uživatelé s omezenými pravomocemi (konkrétně Spolupracovník a Redaktor) provádět nepovolené aktivity (oprava 1, 2 a 3). Dále mohl útočník prostřednictvím CSRF (Cross-site request forgery) přimět uživatele, aby si změnili heslo (oprava).

V dnešní době roboti často zkouší hromadně zadávat různá hesla a občas se jim podaří i nějaké uhodnout a získat tímto způsobem přístup k webu. Někdy ale uživatelské jméno neznají (nepoužíváte např. admin), takže ho musí nejdříve zjistit. Zkoušejí tak různá uživatelská jména a k nim zadávají nějaké velmi dlouhé heslo, čímž mohou snadno ověřit, zda uživatelské jméno opravdu existuje. Jak je to možné? Pokud uživatelské jméno existuje, tak musí WordPress zpracovat hash zadaného hesla a porovnat ho s databází. A pokud je heslo velmi dlouhé, tak to chvilku trvá a útočník podle zpomalené odezvy serveru snadno zjistí, že uživatelské jméno opravdu existuje. Ale to je pouze první část. Následně může robot pro zjištěné uživatelské jméno zadávat mnoho velmi dlouhých hesel, čímž dojde až k ochromení serveru (podrobnosti). Prostě takový jednoduchý DoS útok (Denial of service), mimochodem stejná chyba byla objevena také u Drupalu. Samotná oprava spočívala v tom, že bylo zadáno omezení na délku kontrolovaného hesla.

Se zneužitím hesel souvisí také další problém (hash collision), kdy mohl být zneužit uživatelský účet kvůli stejně vygenerovanému kontrolnímu hashi hesla. Naštěstí ale nebude tato chyba asi příliš častá, protože další podmínka pro úspěšnou realizaci spočívá v tom, aby se uživatel přihlásil do WordPressu naposledy v roce 2008 (oprava).

Další bezpečnostní problém byl objeven v případě obnovení zapomenutého hesla. Pokud je heslo změněno, tak odkaz pro zadání nového hesla obvykle přestane fungovat. Pokud ale bylo heslo změněno, poté se uživatel přihlásil (a přitom zaškrtl políčko “Zapamatovat si mě”) a následně změnil svou emailovou adresu, tak byl odkaz pro obnovení zapomenutého hesla stále funkční a mohl být zneužit (oprava).

Zlepšena byla také ochrana proti možným SSRF útokům (server-side request forgery) ve chvíli, kdy WordPress provádí HTTP požadavky (oprava). A pro jistotu byla ještě posílena kontrola EXIF dat, která jsou získávána z nahrávaných fotek (oprava).

Doufám, že se mi podařilo čtenáře dostatečně vystrašit a můžeme pokračovat dále :-) WordPress 4.0.1 obsahuje také mnoho dalších opravených chyb (celkem 23), podrobnosti naleznete v manuálu (anglicky). Namátkou vyberu jen některé, zejména pokud jste se nimi mohli reálně setkat.

  • Opraven byl docela důležitý problém, kdy měl WordPress 4.0 problémy s některými zkrácenými zápisy (shortcode), pokud byla na serveru použita starší verze PHP než 5.4.8. V tomto případě pak nešlo příspěvek v administraci vůbec zobrazit. Na druhou stranu však optimalizované regulární výrazy ve WordPressu 4.0 eliminovaly kritickou bezpečnostní chybu popsanou výše.
  • Nefungovalo pole pro zadání vlastní stránky u výsledků vyhledávání šablon a pluginů v administraci (chyba).
  • Problémy měl i vizuální editor, takže pokud jste do nějakého příspěvku vložili před galerii nějaký zkopírovaný text, tak se po uložení objevil až za galerií (chyba).
  • Pokud jste změnili velikost okna prohlížeče, tak se mohlo stát, že byl konec textu příspěvku v automaticky rozšířeném editoru nedostupný (chyba).
  • V síti webů nebylo možné vytvářet nové weby, pokud jste měli starší verzi PHP než 5.2.9 (chyba).
  • Knihovna médií (v nové podobě pravidelné mřížky) se nenačetla, pokud jste měli nějaké soubory přiřazené k již neexistujícím příspěvkům či stránkám (chyba).
  • Opraveny byly problémy s trvalými odkazy u hierarchických vlastních typů obsahu (kvůli tomu jsem např. čekal s aktualizací).

Čeština pro WordPress 4.0.1 vyjde v kompletní podobě během několika dnů (vývojáři ještě řeší nějaké ztracené řetězce), ale obecně není moc potřeba. Automatická aktualizace už na většině webů proběhla a noví uživatelé si mohou stáhnout český instalační balíček pro WordPress 4.0, který se jim následně také sám aktualizuje.

Vyzkoušet můžete také druhou beta verzi chystaného WordPressu 4.1 (o první se můžete dočíst v našem článku), stačí použít plugin WordPress Beta Tester.

Ideální český hosting pro český WordPress CZECHIA

8 thoughts on “WordPress 4.0.1 – závažná bezpečnostní aktualizace”

  1. Upozornění pro uživatele: U některých pluginů a šablon se po nejnovější aktualizaci WordPressu objevily problémy s nefunkčními zkrácenými zápisy (shortcode). Pokud si něčeho podobného všimnete, tak nezapomeňte aktualizovat také pluginy a šablonu. Pokud to nepomůže, tak se prosím ozvěte do fóra, kde už je také několik souvisejících problémů hlášeno.

  2. dobrý tady mácha mám prosbu jsem majtelem webovek http://www.ponozkar.cz ale nemohu se na mé webovky dostat protože muj webmástr je v zahraničí už přes mněsíc a neozívásemi ačkoliv mu píši mejli a kody od mích webovek má on poradte co mám dělat potřebuji na mích webovkách pracovat dávat tam fotky uvahy atd děkuji předem za odpověd mácha

  3. dalibor macha: Sice to sem nepatří, ale záležet bude hlavně na tom, zda jste dříve měl nějaké přístupy nebo jste web zatím nikdy neupravoval? Pokud jste už přístupové údaje měl a jenom z nějakého důvodu nefungují (např. jste zapomněl heslo), tak si heslo můžete snadno obnovit (na přihlašovací stránce máte přímo odkaz). Pokud ale žádné přístupy nemáte, tak budete muset vytvořit nové, což ale nepůjde bez přístupu k databázi (ten byste měl získat od svého poskytovatele hostingu).Pošlete mi případné podrobnosti na email, zkusím se na to podívat…

  4. Dobrý den, již delší dobu (od minulého týdne) se nemohu dostat na administraci webu. Popravdě někdy ano, ale při pokusu o editaci např. příspěvků na mě zůsane “zírat” jen prázdná stránka. Pro přístup používám PC s WinXP Professional, Firefox v. 37.0.2. Zkoušel jsem i Operu, ale výsledkem byla hláška “Vzdálený server/soubor nebyl nalezen”. Právě nyní jsem to zkusil i z Firefox pro linux -> výsledek = prázdné okno (po přihlášení). Adresa: http://www.icm.turnov.cz/wp-admin/.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *