В WordPress допълнението OptinMonster, което има над милион активни инсталации и се използва за организиране на показването на изскачащи уведомления и предложения, е установена уязвимост (CVE-2021-39341), която позволява разполагането на собствен JavaScript код на сайт, използващ това допълнение. Уязвимостта е отстранена в версия 2.6.5. За да блокират достъпа чрез компрометирани ключове след инсталирането на обновлението, разработчиците на OptinMonster анулираха всички преди това създадени ключове за достъп до API и добавиха ограничения за използването на ключове от WordPress сайтове за промяна на кампании в OptinMonster.
Проблемът е причинен от наличието на REST-API /wp-json/omapp/v1/support, достъпът до който беше възможен без аутентикация — заявката се изпълняваше без допълнителни проверки при наличие в заглавката Referer на стринга "https://wp.app.optinmonster.test" и когато типът на HTTP заявката беше "OPTIONS" (презаписва се чрез HTTP заглавка "X-HTTP-Method-Override"). Сред данните, връщани при получаване на REST-API, присъстваше ключ за достъп, позволяващ изпращането на заявки към всякакви обработвачи на REST-API.
С получен ключ атакуващият можеше да прави промени в каквито и да е изскачащи блокове, показвани с помощта на OptinMonster, включително да организира изпълнението на собствен JavaScript код. Получавайки възможността да изпълни своя JavaScript код в контекста на сайта, атакуващият можеше да пренасочи потребители към собствения си сайт или да организира подмяна на привилегирована сметка в уеб интерфейса при изпълнението на подменения JavaScript код от администратора на сайта. Има достъп до уеб интерфейса, атакуващият можеше да осигури изпълнението на собствен PHP код на сървър.
Източник: opennet.ru
