WordPress 4.7.1 – bezpečnostní a opravná verze

WordPress 4.7 vyšel už před měsícem a za tu dobu bylo nahlášeno rekordní množství různě závažných chyb. Dnes se ale objevil WordPress 4.7.1, který by měl velkou část chyb opravit a vyřešit také celkem 8 bezpečnostních problémů.

Začneme nejdříve s bezpečností, osm různě závažných problémů je totiž docela dost i na poměry WordPressu :-) Koncem roku 2016 se objevila závažná bezpečnostní chyba v oblíbené knihovně PHPMailer, kterou používá pro snadnější odesílání notifikačních emailů i WordPress. Chyba umožňovala útočníkům vzdáleně spouštět skripty z jiného zařízení, odtud pochází také anglický název remote code execution (RCE). Pokud se zajímáte o další podrobnosti, tak bych určitě doporučil podrobné vysvětlení autorů postižené knihovny (a i další související čtení). Chyb tam bylo totiž nakonec několik, takže tam najdete pěkné chronologické shrnutí. Vývojáři WordPressu nakonec vše vyřešili aktualizací knihovny z původní verze 5.2.14 na aktuální 5.2.22. A i když nebyl samotný WordPress přímo ovlivněn (nepoužíval konkrétní funkci), tak pluginy či šablony ji teoreticky používat mohly.

  • Prostřednictvím REST API šlo získat informace o všech uživatelích, kteří schválili (či publikovali) nějaký příspěvek či obecně položku vlastního typu obsahu (CPT). Ovlivněno mohlo být např. fórum v podobě pluginu bbPress, což zjistili vývojáři tak, že se začaly objevovat problémy s databází, když chtěl někdo zobrazit všechny uživatele z wordpress.org :-) WordPress 4.7.1 by to měl opravovat tak, že se bude zobrazení uživatelů vztahovat pouze na CPT, u kterých je to povoleno (pomocí parametru show_in_rest).
  • A nesměl by samozřejmě chybět nějaký problém v podobě Cross-site scripting (XSS), tentokrát byl objeven v hlavičce pluginu v souboru update-core.php (oprava).
  • A tentokrát tu máme ještě jednu XSS chybu, která zase spočívala v neošetřené hodnotě v hlavičce šablony a opravena byla jednoduše pomocí funkce esc_html().
  • Publikování příspěvků prostřednictvím emailu sice není už v dnešní době moc používané (menu Nastavení – Publikování), ale pokud se k tomuto způsobu někdo uchýlil a nechal v nastavení defaultní hodnotu mailserveru v podobě mail.example.com, tak to šlo patrně zneužít, protože šlo o funkční příklad (oprava).
  • Nevím, jestli znáte režim pro správu widgetů se zachováním pravidel přístupnosti webu (bez JavaScriptu), kde je možné widgety ovládat pouze prostřednictvím klávesnice (zapnout ho můžete v menu Vzhled – Widgety – Nastavení zobrazených informací)? Tak právě zde byla objevena bezpečnostní chyba v podobě cross-site request forgery (CSRF), která byla snadno opravena přidáním kontrolní hodnoty (tzv. nonce).
  • A ještě je tu jedna CSRF chyba, kdy mohl útočník obejít kontrolu nahrávaných souborů a propašovat na web soubor Flash. Poměrně rozsáhlá oprava obsahuje i novou funkci a bohužel souvisí s dlouhodobě (7 let) neřešeným problémem.
  • Aktivační klíče pro weby vytvářené v rámci sítě (Multisite) nebyly dostatečně šifrovány, což bylo opraveno pomocí funkce wp_rand().

A protože bylo bezpečnostních chyb objeveno více než dost (a to i závažných a pro staré verze), tak došlo i k vydání aktualizací pro všechny podporované verze, tedy konkrétně WordPress 4.6.2, 4.5.5, 4.4.6, 4.3.7, 4.2.11, 4.1.14, 4.0.14, 3.9.15, 3.8.17 a 3.7.17. V podstatě každý majitel nějakého webu dostane informační email o provedené aktualizaci :-)

I dalších chyb bylo tentokrát odhaleno opravdu velmi mnoho (cca 80) a podobně vysoký počet u první opravné verze už dlouho nepamatuji. Částečně šlo sice o různé drobnosti (např. v oblasti dokumentace), ale občas mohlo dojít i k závažnějším problémům s webem. Osobně jsem také nahlásil dvě chyby, ale dostanou se na řadu asi až v další opravné verzi 4.7.2 :-(

O co konkrétně šlo?

  • Nová funkce pro vytváření a ukládání souboru změn nastavení webu (tzv. Changesets) nefungovala zcela správně a mohlo se stát, že parametr changeset_uuid (potřebný pro sdílení či uložení provedeného nastavení) nebyl vygenerován.
  • Druhý problém pak spočíval v tom, že RSS feed začal zobrazovat chybu 404 v případě, kdy na webu nejsou žádné příspěvky (což ovlivnilo i plugin České služby, podrobnosti zde). Provizorní řešení je v tomto případě však naštěstí jednoduché, stačí vytvořit (a třeba ho ani nikde nezobrazovat) jeden jediný příspěvek. Problém jsem nahlásil už asi před měsícem, oprava se objevila téměř vzápětí, pak se ale delší dobu nic nedělo (tedy kromě toho, že si stěžovali další autoři pluginů a chtěli opravu popohnat) a nakonec bylo vše přesunuto až do verze 4.7.2.

A jaké byly nejčastější problémy s WordPressem 4.7 v rámci místního fóra? Asi nejvíce uživatelům vadilo odstranění (a přerovnání) ikonek vizuálního editoru (např. zde), objevilo se několik různých konfliktů s pluginy (např. zde) a občas zlobila i nedokončená automatická aktualizace a bylo třeba ručně nakopírovat všechny instalační soubory.

Mnoho chyb (kompletní přehled) se týkalo zejména novinek verze 4.7, konkrétně změn v oblasti aktuálních možností nastavení (Customizer) a REST API, problémy byly ale třeba i s novou šablonou Twenty Seventeen (a importem ukázkového obsahu). Vlastně je to logické, protože opravné verze by měly řešit pouze bezpečnostní problémy a chyby poslední velké verze. Průběžně jsou ale hlášeny další chyby a vývojáři zároveň potřebují občas opravit i nějaké starší problémy. A protože je pravděpodobné, že se WordPress 4.8 v dohledné době neobjeví, tak budou automatické aktualizace v podobě menších verzí patrně postupně rozšiřovány a možná se stanou i pravidelnými (např. jednou měsíčně), abychom nemuseli dlouho čekat na novou velkou verzi. Tím však zase roste riziko, že dojde na webu k nějakému problému, zejména v podobě konfliktu s nějakým pluginem a šablonou a web tak bude v podstatě “automaticky” rozbit. Ale uvidíme, zatím jde spíše o spekulace.

Pokud jste narazili na nějaký problém, tak se neváhejte ozvat v místním fóru.

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

6 thoughts on “WordPress 4.7.1 – bezpečnostní a opravná verze”

  1. na anglickem webu wordpress.org je jiz ke stazeni 4.7.1,
    kdy bude i na cs.wordpress.org vi se to jiz?

Napsat komentář

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