WordPress 3.1.3 přináší mnoho bezpečnostních oprav

Ve středu vyšla již třetí opravná verze WordPressu 3.1, která obsahuje mnoho různých oprav v oblasti zabezpečení. Netrvalo to tedy ani měsíc a máme tu WordPress 3.1.3. A vlastně si ani nevzpomínám, kdy naposledy bylo součástí “malé” verze tolik bezpečnostních oprav.

WordPress 3.1.3 opravuje bezpečnostní problémy z celého spektra možných typů napadení, změněno bylo celkem 26 souborů, detailní změny zdrojového kódu si můžete prohlédnout zde. Jednotlivé problémy si v tomto článku projdeme trochu podrobněji.

Došlo k posílení bezpečnosti u databázových dotazů pro taxonomie v rámci prevence napadení prostřednictvím metody SQL Injection. Problém nahlásil John Lamansky, oprava využívá doporučovanou metodu $wpdb->prepare (manuál).

Verónica Valeros nahlásila bezpečnostní chybu typu Insecure Direct Object Reference, která umožňuje útočníkovi získat informace o jednotlivých uživatelích WordPressu bez patřičné autentifikace. Stručně řečeno, WordPress automaticky zobrazuje archivy příspěvků všech autorů webu, výchozí adresa je http://www.mojedomena.cz/?author=1, kde id autora je číslo za rovnítkem (v tomto příkladu tedy 1). Jenomže pokud jsou povolené trvalé (aneb “hezké”) odkazy, tak je tato výchozí adresa automaticky přesměrována na adresu http://www.mojedomena.cz/author/admin. A tak můžete okamžitě zjistit, že je na webu registrován uživatel se jménem admin. Tímto způsobem můžete postupně vyzkoušet všechna následná id uživatelů, čímž jednoduše získáte uživatelská jména všech autorů jakéhokoliv webu ve WordPressu. Tato možnost byla ve WordPressu 3.1.3 znemožněna následující opravou.

Posílena byla bezpečnost při nahrávání souborů na některých nestandardních serverových konfiguracích, takže by už měla být vždy použita funkce sanitize_file_name() pro ošetření názvů nahrávaných souborů (oprava).

Další bezpečnostní problém spočíval v tom, že pokud během importování obsahu webu nebyl celý proces správně ukončen (došlo např. k nějaké chybě), tak zůstával importovací soubor nahraný v adresáři wp-content/uploads a mohl si ho tak všimnout vyhledávač a zaindexovat ho. Importní soubor s mnoha důležitými daty tak mohl být tímto způsobem v podstatě zveřejněn. Vývojáři problém opravili tak, že přidali kontext pro nahrávané soubory a importní soubory budou nově označené jako soukromé. Kromě toho bude také probíhat automatický skript, který případně zapomenuté importní soubory v pravidelných intervalech smaže.

Zprovozněna byla také počáteční fáze ochrany proti Clickjackingu v moderních prohlížečích (pro stránky v administraci WordPressu a přihlašovací formulář). WordPress tak bude odesílat HTTP hlavičku X-FRAME-OPTIONS, která zamezí podobným útokům.

Další chyba byla nahlášena přímo na webu firmy Secunia a šlo o variantu jednoho předchozího problému, kdy mohl uživatel s oprávněním Editor nahrát soubor typu filename.php.jpg, jehož zobrazením pak bylo možné spustit obsažený PHP kód. Původně byl tento problém opraven již ve WordPressu 2.8.6, ale za jistých podmínek ho bylo možné nadále zneužít kvůli chybě v regulárním výrazu (oprava). V tomto případě ale musel mít webserver (Apache) povoleno zpracování vícenásobných koncovek souborů, což naštěstí není příliš obvyklé. Podobný problém pak ale objevil i Alexander Concha a dokonce nebylo žádné speciální nastavení webserveru potřeba. Na základě jeho informací pak byla ošetřena hodnota guid během ukládání a zobrazování, dále byl ošetřen typ souboru (mime type) při ukládání a zamezilo se změně typu souboru při editaci nahraného mediálního souboru. Nově jsou také lépe chráněna skrytá uživatelská pole (jejich název začíná podtržítkem). Výsledkem všech těchto změn pak byla poměrně rozsáhlá oprava (a ještě jedna drobná dodatečná úprava).

Opravena byla i bezpečnostní chyba umožňující potenciální využití metody Cross-site Scripting (XSS) a došlo i k některým dalším drobným bezpečnostním vylepšením. Zajímavý je také fakt, že některé chyby oznámili WordPressu vývojáři z Microsoftu. Nechceme hned začít spekulovat, ale proč Microsoft detailně zkoumá bezpečnost WordPressu?

Ve WordPressu 3.1.3 byly také opraveny 2 chyby:

1) Chyba 17264 – Pokud jste prováděli výpis příspěvků na základě hodnot uživatelských polí pomocí nového parametru meta_query, např. prostřednictvím funkce query_posts(), tak mohlo dojít k duplicitnímu výpisu příspěvků. Při použití argumentů 'value' => 'Praha' a 'compare' => 'LIKE' a existenci dvou různých uživatelských polí u jednoho příspěvku, které obsahovaly stejný výraz “Praha”, došlo k tomu, že byl příspěvek zobrazen dvakrát. Nově je tato možnost již ošetřena a nemusí být použit další argument 'key' (aneb identifikátor/název uživatelského pole).

2) Chyba 17327 – Opraven problém s nefunkčním stránkováním pro automaticky aktivované pluginy (např. na jednodtlivých webech u víceuživatelské verze WordPressu, anglicky Must-Use) a doplňkové soubory (anglicky Drop-ins).

Bohužel se vzápětí po vydání WordPressu 3.1.3 objevila nová chyba, kterou naštěstí provizorně řeší plugin Hotfix (doporučujeme nainstalovat a pravidelně aktualizovat). Lze tedy předpokládat, že se v dohledné době ještě dočkáme WordPressu 3.1.4.

Vzhledem k množství bezpečnostních oprav určitě neváhejte aktualizovat. Začínající uživatelé si mohou stáhnout instalační balíček pro WordPress 3.1.3 (anglická verze) přímo z oficiálního webu, ostatní už mohou jen využít jednoduchou automatickou aktualizaci. Čeština pro WordPress 3.1.3 vyjde během zítřka (žádné změny v překladu však neproběhly, možná bude upraveno jen několik detailů).

Nejoblíbenější hosting pro WordPress WEDOS.cz

13 thoughts on “WordPress 3.1.3 přináší mnoho bezpečnostních oprav”

  1. Pingback: Svět informací
  2. Já vím, proč si tu hlášku o aktualizacích nemám schovávat pomocí hacku. Prostě ty aktualizace jsou důležité, nejen kvůli bezpečnosti :) díky za přehled :)

  3. Zdravím,
    Mám problém, kterému nemohu přijít na zoubek. Když vstoupím přes administraci do knihovny médií, tak se mi v půli displeje objeví tahle tohle varování:
    Warning: explode() expects parameter 2 to be string, array given in /data/web/virtuals/951/virtual/www/wp-includes/query.php on line 2390

    Warning: in_array() expects parameter 2 to be array, null given in /data/web/virtuals/951/virtual/www/wp-includes/query.php on line 2399

    Warning: in_array() expects parameter 2 to be array, null given in /data/web/virtuals/951/virtual/www/wp-includes/query.php on line 2399

    Warning: in_array() expects parameter 2 to be array, null given in /data/web/virtuals/951/virtual/www/wp-includes/query.php on line 2399

    Warning: in_array() expects parameter 2 to be array, null given in /data/web/virtuals/951/virtual/www/wp-includes/query.php on line 2399

    Warning: in_array() expects parameter 2 to be array, null given in /data/web/virtuals/951/virtual/www/wp-includes/query.php on line 2399

    Warning: in_array() expects parameter 2 to be array, null given in /data/web/virtuals/951/virtual/www/wp-includes/query.php on line 2399

    Warning: in_array() expects parameter 2 to be array, null given in /data/web/virtuals/951/virtual/www/wp-includes/query.php on line 2399

    Warning: in_array() expects parameter 2 to be array, null given in /data/web/virtuals/951/virtual/www/wp-includes/query.php on line 2399
    —————————————————————————————–
    v druhé polovině displeje se zobrazí knihovna médií a vše co tam patří.
    Po vyčerpání možností (vypnutí všech pluginu) se pořad zobrazuje stejné varování. Naposled před tímto varováním jsem byl v knihovně médií byl 8.5.2011 a bylo vše v pořádku, proto jsem pojal podezření, že je chyba v upgrade WordPressu, mám verzi 3.1.3.
    Pokud by někdo věděl co s tím, rád bych uvítal radu. Děkuji

  4. JaLoMe: Ano, je to známá chyba WordPressu 3.1:3. Pročtěte předposlední odstavec našeho článku, instalací pluginu Hotfix se těchto chybových hlášek zbavíte…

  5. Já se taky divil, ale pak jsem si ještě jednou přečetl tento článek a hned jsem krucifix tedy hotfix použil. Mám teď klid. :)

  6. Článek jsem celý četl a protože v tom odstavci chyba nebyla popsaná, tak jsem ten HOTFIX ani nezaregistroval. Děkuji moc, po instalaci HOTFIXu je už zase vše v pořádku.

Napsat komentář

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