StyleSmuggler: непропатченная 0-day в Magento уже используется для взлома магазинов
Нидерландская компания по безопасности электронной коммерции Sansec 5 сентября выпустила предупреждение о новой уязвимости в Magento Open Source и Adobe Commerce, назвав её StyleSmuggler. Дыра позволяет злоумышленнику без входа в систему выполнить произвольный код на сервере магазина и установить постоянный бэкдор. Компания подчёркивает, что публикует данные раньше обычного, потому что магазины взламывают прямо сейчас: первые атаки зафиксированы 4 сентября.
По состоянию на 6 сентября Adobe не выпустила ни бюллетень, ни идентификатор CVE, ни патч, ни обходное решение. Затронуты, по данным Sansec, все актуальные версии — исследователи воспроизвели полную неавторизованную цепочку на чистых установках 2.4.7, 2.4.8 и 2.4.9. Первая жертва работала на 2.4.6-p15 с последними доступными обновлениями Adobe, то есть штатные патчи не спасали.
Как устроена атака
Атака идёт в два этапа. Сначала в файл, который Magento создаёт сам (например, при генерации отчёта об ошибке), внедряется PHP-код. Затем платформу заставляют выполнить этот файл, вызвав штатное письмо «Payment Transaction Failed Reminder». Код срабатывает в момент рендеринга письма, поэтому открывать его никому не нужно, а атака удаётся даже при сбое отправки почты.
Имплант маскируется под системный процесс [kworker/u:8:0] — имя, обычно принадлежащее потоку ядра Linux. Это статически слинкованная программа на Rust размером около 1,9 МБ, устанавливаемая в домашний каталог пользователя сайта. Запись в cron перезапускает её каждые пять минут; на одном магазине эта строка встречалась 1728 раз, а после удаления восстанавливалась в течение секунды. На одном из заражённых узлов имплант вообще не выходил наружу, а держал 28 соединений с локальным Redis, читая хранилище сессий Magento.
Что делать до выхода патча
Официального исправления нет. Sansec советует магазинам без её продукта Shield временно отключить GraphQL. При этом headless- и PWA-витрины без GraphQL не работают, тогда как классические витрины и Hyvä в нём обычно не нуждаются. Компания Disrex, независимо расследовавшая два взлома, опубликовала правила для nginx и Apache, но признаёт: они блокируют лишь параметры в строке запроса, а те же данные в теле POST доходят до PHP.
Disrex рекомендует также добавить proc_open в disable_functions и монтировать /tmp, /var/tmp и /dev/shm с флагом noexec, чтобы скачанный бинарник не запустился. При очистке заражённого магазина важно сначала сохранить улики, удалять запись cron до завершения процесса, не перезагружать сервер и не запускать composer install. После — сбросить хранилище сессий и сменить ключ шифрования в app/etc/env.php, а также все пароли и API-ключи.
Следующий плановый выпуск обновлений Adobe назначен на 8 сентября, но войдёт ли туда исправление, пока неизвестно.
Источник: The Hacker News
Комментарии
Войдите, чтобы комментировать.