
Эксплойт Proof of Concept (PoC) для CVE-2025-70886, постоянная уязвимость типа «отказ в обслуживании» в Halo CMS (v2.22.4 и более ранние версии), которая позволяет удаленным атакующим вызвать сбой интерфейса комментариев администратора, отправляя вредоносные полезные нагрузки.
Эксплойт Proof of Concept (PoC) для CVE-2025-70886, уязвимости постоянного отказа в обслуживании в Halo CMS (v2.22.4 и более ранние версии), которая позволяет удаленным злоумышленникам вызывать сбой интерфейса комментариев администратора путем отправки некорректных полезных нагрузок.
Проблема в Halo v2.22.4 и более ранних версиях позволяет удаленному злоумышленнику вызвать отказ в обслуживании с помощью специально созданной полезной нагрузки на общедоступную конечную точку отправки комментариев.
Злоумышленник может отправить специально созданную/некорректную полезную нагрузку комментария (с отсутствующими полями, такими как subjectRef.version) через общедоступную конечную точку отправки комментариев. Некорректный комментарий сохраняется и позже вызывает необработанное исключение при чтении/рендеринге на странице комментариев администратора, что приводит к постоянному отказу в обслуживании страницы управления комментариями до тех пор, пока проблемная запись не будет удалена или не будет исправлена проверка/обработка на стороне сервера.
В конце выполнения задача Summary публикует таблицу, показывающую каждую версию Halo и её статус:
likely_vulnerable — API вернул HTTP 500 во время проверки.not_confirmed — API не вернул HTTP 500.⚠️ Предупреждение: Только для авторизованных тестовых сред
Клонировать репозиторий PoC
git clone https://github.com/HowieHz/CVE-2025-70886
cd CVE-2025-70886
Развернуть тестовый экземпляр Halo CMS
Инициализировать систему
Выполните скрипт PoC (Убедитесь, что среда Node.js настроена.)
node src/poc.js --base-url http://localhost:8090 --payload fixtures/payload.sample.json
Доступные опции:
--base-url: Базовый URL сайта Halo (например, http://localhost:8090)--payload: Путь к захваченному файлу JSON с допустимой полезной нагрузкой комментария--dry-run: Только вывести измененную полезную нагрузку, не отправлять--header: Дополнительный заголовок в формате 'Key: Value' (можно повторять)--help: Показать справкуПроверить уязвимость