У відкритій платформі для організації електронної комерції
Одна з проблем дозволяє неавтентифікованому користувачеві домогтися розміщення JavaScript-коду (XSS), який може бути виконаний під час перегляду журналу скасованих покупок в інтерфейсі адміністратора. Суть уразливості у можливості обійти операцію чищення тексту за допомогою функції escapeHtmlWithLinks() при обробці примітки у формі скасування на екрані початку оформлення покупки (використання вкладеного в інший тег тега «a href=http://onmouseover=…»). Проблема проявляється під час використання вбудованого модуля Authorize.Net, за допомогою якого здійснюється прийом платежів за кредитними картками.
Для отримання повного контролю за допомогою JavaScript-коду в контексті поточного сеансу співробітника магазину експлуатується друга вразливість, що дозволяє завантажити файл під виглядом картинки (
Цікаво, що відомості про 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