
Эксплойт доказательства концепции для CVE-2022-24086 и CVE-2022-24087, демонстрирующий удаленное выполнение кода до аутентификации в Magento/Adobe Commerce с помощью специально сформированных полезных нагрузок, обходящих проверку ввода.
CVE-2022-24086 и CVE-2022-24087 — это уязвимость неправильной проверки входных данных в форме обратной связи Magento Open Source и Adobe Commerce, получившая оценку CVSS 9.8 из 10. Она классифицируется как проблема, не требующая аутентификации, что означает возможность эксплуатации без учетных данных.
Magento Open Source / Adobe Commerce — 2.3.3-p1 – 2.3.4
Magento Open Source / Adobe Commerce — 2.3.4-p2 – 2.4.2-p2
Magento Open Source / Adobe Commerce — 2.4.3 – 2.4.3-p1
CVE-2022-24086 представляла собой критическую уязвимость нулевого дня, затрагивающую магазины Magento. Сообщалось о её эксплуатации в ограниченных атаках. Другая уязвимость, CVE-2022-24087, имеет тот же уровень опасности и аналогичный вектор атаки.
После некоторых исследований я не нашел легитимной и работающей PoC для демонстрации серьезности этой уязвимости от Adobe, поэтому решил создать свою собственную. При обратном проектировании официальных и неофициальных патчей я обнаружил, что в /app/code/Magento/Email/Model/Template/Filter.php входные данные неправильно очищались, и из-за неспособности платформы распознавать комбинации типов символов во время проверки формы вредоносные последовательности могут безнаказанно творить хаос, позволяя обходить обычные методы проверки входных данных, используемые для очистки нежелательных типов ввода. Это открывает возможность для SQL-инъекций и внедрения PHP-объектов в Magento, что может привести к добавлению нежелательных записей в базу данных или удаленному выполнению кода.
Некоторые части добавленного кода в официальных патчах (MDVA-43395), которые ведут нас к PoC:
Что нам нужно сделать — это создать сложную нагрузку для отправки методом POST: