V pluginu MailOptin byla identifikována kritická bezpečnostní zranitelnost umožňující nepřihlášenému útočníkovi změnit heslo libovolného existujícího uživatele WordPressu, včetně administrátora.
MailOptin slouží k vytváření registračních formulářů, vyskakovacích oken, e-mailových kampaní a propojení WordPressu s marketingovými službami.
Podle WordPress.org má plugin více než 10 000 aktivních instalací.
Mechanismus zneužití
Problém se nachází ve veřejně dostupném endpointu:
subscribe_to_email_list
Tento endpoint zpracovává přihlášení uživatelů k odběru a registrace prostřednictvím formulářů MailOptin.
Zranitelnost souvisí s nedostatečným ověřováním parametru:
optin_data[form_custom_field_mappings]
Plugin umožňuje, aby uživatelsky předaná konfigurace mapování polí přepsala nastavení definované administrátorem.
Útočník tak může ovlivnit, do kterých databázových polí WordPressu budou předané hodnoty zapsány.
Mezi potenciálně ovlivnitelná pole patří:
ID– identifikátor uživatelského účtu.user_pass– heslo uživatelského účtu.
Za běžných okolností slouží funkce wp_insert_user() k vytváření nebo aktualizaci uživatelských účtů.
Útočník však může podvrhnout existující identifikátor uživatele a přimět WordPress k aktualizaci jeho účtu namísto vytvoření nového.
Tím může dojít k přepsání hesla administrátorského účtu hodnotou zvolenou útočníkem.
Útočník se následně může přihlásit do administrace WordPressu.
Podmínky zneužití
Zranitelnost nevyžaduje existující uživatelský účet ani znalost administrátorského hesla.
Pro úspěšné zneužití však musí být na webu zveřejněn registrační formulář MailOptin využívající integraci WordPress User Registration.
Identifikátor formuláře je dostupný ve zdrojovém kódu stránky.
Útok proto nevyžaduje přihlášení ani interakci administrátora.
Možné následky
Úspěšné zneužití může vést k úplnému převzetí WordPress instalace.
Útočník může následně instalovat škodlivé pluginy, vytvářet další administrátorské účty, získávat citlivé informace nebo upravovat konfiguraci webu.
U e-shopů a členských webů mohou být ohroženy také zákaznické údaje.
Hodnocení závažnosti
CVSS: 9.8/10 – Kritická 🔴
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Dostupnost bezpečnostní opravy
Zranitelnost byla opravena ve verzi 1.2.78.7.
Opravu potvrzuje Wordfence i oficiální changelog pluginu, který uvádí zabezpečení nedostatečně kontrolovaného mapování formulářových polí.
Doporučené kroky
- Doporučujeme bezodkladně aktualizovat MailOptin minimálně na verzi 1.2.78.7.
- U webů, které provozovaly postižené verze, doporučujeme prověřit, zda byly zveřejněny registrační formuláře MailOptin propojené s uživatelskými účty WordPressu.
- Je vhodné zkontrolovat historii změn administrátorských hesel.
- Doporučujeme prověřit neobvyklá přihlášení administrátorských účtů.
- Je vhodné zkontrolovat serverové logy a podezřelé požadavky na endpoint
subscribe_to_email_list. - Doporučujeme prověřit případné neoprávněné změny uživatelských oprávnění a nově vytvořené administrátorské účty.
- Pokud aktualizace není okamžitě možná, doporučujeme dočasně deaktivovat postižené registrační formuláře nebo celý plugin.
- Při podezření na kompromitaci doporučujeme obnovit administrátorská hesla, ukončit aktivní uživatelské relace a provést kompletní bezpečnostní analýzu.
Důležité: Samotná aktualizace pluginu nemusí odstranit následky případného předchozího převzetí administrátorského účtu.
