Ve WordPress pluginu OptinMonster, který má více než milion aktivních instalací a slouží k zobrazování vyskakovacích upozornění a nabídek, byla zjištěna zranitelnost (CVE-2021-39341), která umožňuje vložení vlastního JavaScriptového kódu na webu používajícím tento plugin. Zranitelnost byla odstraněna ve verzi 2.6.5. Aby se zablokoval přístup prostřednictvím ukradených klíčů po instalaci aktualizace, vývojáři OptinMonster zneplatnili všechny dříve vytvořené klíče API a přidali omezení pro používání klíčů WordPressových webů pro změnu kampaní OptinMonster.
Problém byl způsoben přítomností REST-API /wp-json/omapp/v1/support, který byl přístupný bez autentizace — požadavek byl proveden bez dalších kontrol, pokud byla v hlavičce Referer uvedena řádka „https://wp.app.optinmonster.test“ a typ HTTP požadavku byl nastaven na „OPTIONS“ (přepisováno pomocí HTTP hlavičky „X-HTTP-Method-Override“). Mezi daty vracenými při volání daného REST-API byl obsažen přístupový klíč, který umožňoval posílat požadavky na jakékoli zpracovatele REST-API.
Pomocí získaného klíče mohl útočník provést změny v jakýchkoli vyskakovacích oknech zobrazených pomocí OptinMonster, včetně spuštění svého JavaScriptového kódu. Získáním možnosti provést svůj JavaScriptový kód v kontextu webu mohl útočník přesměrovat uživatele na svůj web nebo provést substituci privilegovaných účtů v webovém rozhraní při provádění vloženého JavaScriptového kódu administrátorem webu. S přístupem do webového rozhraní mohl útočník dosáhnout provedení svého PHP kódu na serveru.
Zdroj: opennet.ru
