Уразлівасць, якая дапускае падстаноўку JavaScript-кода праз WordPress-убудова OptinMonster

У 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-код у кантэксце сайта атакавалы мог перанакіраваць карыстальнікаў на свой сайт або арганізаваць падстаноўку прывілеяванага ўліковага запісу ў web-інтэрфейс пры выкананні падстаўленага JavaScript-кода адміністратарам сайта. Маючы доступ у web-інтэрфейс атакуючы мог дамагчыся выкананні свайго PHP-кода на серверы.

Крыніца: opennet.ru

Дадаць каментар