В отворената платформа за организация на електронна търговия , която заема около пазара на системи за създаване на интернет-магазини, уязвимости, комбинацията от които позволява извършване на атака за изпълнение на собствен код на сървъра, получаване на пълен контрол над интернет-магазина и организиране на пренасочване на плащанията. Уязвимостите в изданията Magento 2.3.2, 2.2.9 и 2.1.18, в които общо са отстранени 75 проблеми, свързани с безопасността.
Един от проблемите позволява на неаутентифициран потребител да постави JavaScript код (XSS), който може да бъде изпълнен при разглеждането на списъка с отменените покупки в интерфейса на администратора. Същността на уязвимостта е възможността да се заобиколи операцията по почистване на текста чрез функцията escapeHtmlWithLinks() при обработка на бележката в формата за анулиране на екрана за начало на оформяне на покупка (използване на вложения в друг таг тага „a href=http://onmouseover=…“). Проблемът се проявява при използване на вградения модул Authorize.Net, чрез който се извършват плащания по кредитни карти.
За получаване на пълен контрол чрез JavaScript код в контекста на текущата сесия на служителя в магазина се експлоатира втора уязвимост, позволяваща зареждане на phar файл под вида на изображение ( „Deserialization на Phar“). Phar файлът може да бъде качен чрез формата за вмъкване на изображения в вградения WYSIWYG редактор. След успешното изпълнение на своя PHP код, атакуващият може след това да промени данните за плащания или да организира прихващане на информация за кредитните карти на клиентите.
Интересното е, че информацията за проблема с XSS беше изпратена на разработчиците на Magento още през септември 2018 година, след което в края на ноември беше издаден пач, който, както се оказа, решава само един от частните случаи и лесно се заобикаля. В януари допълнително беше съобщено за възможността за зареждане на Phar файл под вида на изображение и беше показано как комбинацията от двата проблема може да се използва за компрометиране на интернет-магазини. В края на март в Magento 2.3.1,
2.2.8 и 2.1.17 беше отстранен проблемът с Phar файловете, но забравеното решение за XSS, въпреки че билетът за проблема беше затворен. През април разборът на XSS възобнови и проблемът беше отстранен в изданията 2.3.2, 2.2.9 и 2.1.18.
Следва да се отбележи, че в посочените версии са отстранени 75 уязвимости, от които 16 имат критичен риск, а 20 проблема могат да доведат до изпълнение на PHP код или инжектиране на SQL команди. Повечето критични проблеми могат да бъдат експлоатирани само от удостоверени потребители, но както показва предходното, постигането на удостоверени операции не е трудно чрез XSS уязвимости, отстранени в посочените версии.
Източник: opennet.ru
