Byl zveřejněn 0day exploit postihující všechny verze WordPress <= 4.7.4 (CVE-2017-8295)

Etický hacker Dawid Golunski ve středu publikoval podrobnosti o dvou chybách, které nalezl v systému Wordpress. První z nich (CVE-2016-10033), je již opravená kritická RCE zranitelnost ve WordPress Core 4.6 a druhá (CVE-2017-8295), je 0day zranitelnost umožňující potencionální password reset.

Dawid Golunski z Legal Hackers našel zranitelnost v "password reset" funkcionalitě již minulý rok, v červenci 2016 reportoval chybu bezpečnostnímu týmu WordPress, který se tento problém rozhodl ignorovat. Golunski několikrát kontaktovat vývojáře, jak přes oficiální email, tak v rámci bug bounty programu na serveru HackerOne a nakonec se rozhodl veškeré detaily zveřejnit.
Zranitelnost se nachází ve funkci pro reset hesla, kdy může útočník za splnění určitých podmínek získat vygenerovaný odkaz pro změnu hesla konkrétního uživatele. Takový útok může být využit k získání přístupu do administrátorského účtu.

Wordpress využívá proměnnou "SERVER_NAME" pro získání "hostname" serveru, z důvodu nastavení "From/Return-Path" hlavičky pro odesílaný email. Přední web servery, například Apache ale defaultně vyplňují SERVER_NAME podle hostname poskytnuté klientem (HTTP_HOST header).

Útočník tak může podvrhnout hodnotu, ze které Wordpress vygeneruje emailovou adresu odesílatele. Za určitého konfigurace serveru bude také nastavena hodnota "Return-Path" pro vrácení nedoručitelného emailu.

Tato chyba může být zneužita následujícím způsobem:
  1. Útočník může způsobit DDoS útok na emailový server oběti, případně DoS útok na emailovou schránku (zaslání mnoha velkých souborů k zaplnění kapacity emailové schránky). Email s odkazem na reset hesla tak nebude doručen a vrátí se na adresu podvrženou útočníkem.
  2. Obět je na dovolené a má nastavenou automatickou odpověd na emaily. Pokud automatická odpověď zasílá i celý text přijatého emailu, bude odkaz na reset hesla doručen zpět útočníkovi.
  3. S využitím sociálního inženýrství může útočník zaslat několik desítek emailů s resetem hesla a přinutit oběť, aby na jeden z emailů odpověděla. Odesílatel (útočník) tak získá potřebný odkaz.
Kompletní dokumentaci o uvedené zranitelnosti spolu s ukázkou neleznete zde.
Autor si přál obě zranitelnosti rozlišit a popsat v samostatných článcích, tak se ještě zmíním i o druhé, již opravené kritické RCE zranitelnosti. Podrobnější report zde.

Dawid Golunski již minulý rok publikoval RCE zranitelnost v populární open-source knihovně PHPMailer (CVE-2016-10033), o které se tehdy dost mluvilo a od té doby bylo nalezeno několik variací v podobných knihovnách.

Tento vektor útoku může být použit proti proti různým systémům, WordPress security team podle Golunskiho oznámil, že WordPress je proti této zranitelnosti imunní. Podrobnosti o chybě ve WordPress Core 4.6 ale uvádějí, že na mnoha systémech, například Debian a Ubuntu je defaultně nainstalovaný MTA (Mail Transfer Agent) - Exim, který může být podobně exploitován pomocí funkce mail().

Z důvodu kritické hrozby, bylo zveřejnění podrobností z minulého roku odloženo, aby měl WordPress team a vývojáři potencionálně zranitelného software dostatek času na opravu.
Podobně jako v prvním případě, WordPress používal pro registrace a reset hesla hlavičku "SERVER_NAME", ze které byl vygenerován email odesílatele.
$from_email = '[email protected]' . $sitename;
Adresa odesílatele pak byla vložena do zranitelné funkce setFrom() v knihovně PHPMailer. Ovšem jak na straně PHPMaileru, tak WordPressu byl použit filtr/validace, díky které nemělo být možné chybu exploitovat. Autor v dokumentaci uvádí, že stejný postup jako při CVE-2016-10033 nešel v tomto případě použít.

Po úpravě původního kódu spolu s nově nalezenou zranitelností v Exim4 MTA se nakonec podařilo obejít všechny filtry a vyvolat RCE na systému WordPress 4.6. Pro detailní technické informace doporučuji skvěle napsanou oficiální zprávu. Autor navíc zveřejnil video, kde můžete vidět praktickou ukázku přiloženého exploitu.


Podle statistiky z února 2017 byl WordPress použit na více než 27.5% z top 10 milionů webových stránek. Jednoznačně se jedná o nejpopulárnější redakční systém, který celosvětově používá více než 60 milionů internetových stránek a blogů.

Nové verze umožňují automatické aktualizace, i tak je ale doporučeno manuálně kontrolovat a aktualizovat veškeré pluginy a šablony vzhledu. Případně použít webový firewall a jiné anti-exploit mechanizmy. Pokud vás podobné nastavení zajímá, neváhejte se obrátit na naši společnost.

Více zdrojů:

https://legalhackers.com/

https://twitter.com/dawid_golunski

https://exploitbox.io/vuln/WordPress-Exploit-4-7-Unauth-Password-Reset-0day-CVE-2017-8295.html

https://exploitbox.io/vuln/WordPress-Exploit-4-6-RCE-CODE-EXEC-CVE-2016-10033.html

http://thehackernews.com/2017/05/hacking-wordpress-blog-admin.html

https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html

https://www.youtube.com/watch?v=ZFt_S5pQPX0

https://www.reddit.com/r/netsec/comments/693xrx/wordpress_core_unauth_remote_code_execution_rce/

https://www.reddit.com/r/netsec/comments/692w7m/wordpress_core_474_potential_unauthorized/


Byl zveřejněn 0day exploit postihující všechny verze WordPress <= 4.7.4 (CVE-2017-8295) Byl zveřejněn 0day exploit postihující všechny verze WordPress <= 4.7.4 (CVE-2017-8295) Reviewed by Kamil Vavra on května 05, 2017 Rating: 5

Žádné komentáře:

Používá technologii služby Blogger.