Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-10952-ml-logger-AFR — # CVE-2025-10952 PoC — ml-logger 인증 없는 임의 파일 읽기. CVSS 5.3 | Kitploit
도구/GitHubGitHub/khashayarnzk/cve-2025-10952-ml-logger-afr
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration Testing
GitHubkhashayarnzk/cve-2025-10952-ml-logger-afr

CVE-2025-10952-ml-logger-AFR

# CVE-2025-10952 PoC — ml-logger 인증 없는 임의 파일 읽기. CVSS 5.3

저장소 보기
720일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-10952 — ml-logger stream_handler 임의 파일 읽기

이 저장소는 ml-logger의 stream_handler에서 인증되지 않은 임의 파일 읽기 취약점을 악용하고, 파일 시스템 열거를 위해 /glob 엔드포인트와 연계하는 독립형 Python 스크립트 — CVE-2025-10952.py — 를 제공합니다.

취약한 ml-logger 인스턴스에 대해 실행하면 다음을 수행합니다:

  • /glob 엔드포인트를 통해 대상 호스트의 파일을 열거합니다(인증 불필요, 의도된 범위 외 경로 제한 없음).
  • 핸들러의 기본 경로 결합 로직을 벗어나는 조작된 key 매개변수를 제공하여 /stream 엔드포인트를 통해 임의 파일을 읽습니다.
  • 선택적으로 검색된 파일을 후속 사용(예: 유출된 SSH 개인 키)을 위해 디스크에 저장합니다.

stream_handler는 클라이언트가 제공한 필드를 포함 여부 검사 없이 파일 경로 확인 및 스트리밍 호출에 직접 전달하므로, 인증되지 않은 네트워크 공격자는 서비스의 OS 사용자가 접근할 수 있는 모든 파일을 읽을 수 있습니다.

key

취약점 세부 정보 (CVE-2025-10952)

  • 구성 요소: ml_logger/server.py — stream_handler (파일 핸들러)
  • 약점: CWE-200 (인가되지 않은 행위자에게 민감 정보 노출), CWE-284 (부적절한 접근 제어)
  • CVSS 3.1: 5.3 (중간) — AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
  • 영향받는 버전: geyang/ml-logger, 커밋 acf255bade5be6ad88d90735c8367b28cbe3a743까지의 모든 버전 (롤링 릴리스 프로젝트; 공개 시점에 수정 버전 미공개)
  • 필요한 접근 권한: 없음 (인증 불필요)

stream_handler는 key 필드를 포함하는 JSON 본문을 수락하고 경로 정화 없이 파일 읽기 호출에 직접 전달합니다. 형제 glob_handler 엔드포인트는 부분적인 경로 제한(절대 경로 및 경로 탐색 차단)을 구현하지만, stream_handler는 해당 검증을 공유하지 않습니다 — key의 이중 선행 슬래시(예: //root/.ssh/id_rsa)는 의도된 기본 디렉터리를 벗어나기에 충분합니다.

사전 요구 사항

  • Python 3.8+
  • 취약한 ml-logger API 인스턴스에 대한 네트워크 접근
  • 어떤 종류의 자격 증명도 필요 없음

설정 및 설치

root@kitploit:~
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

사용법

파일 열거:

root@kitploit:~
python3 CVE-2025-10952.py --target TARGET --port 8081 --glob "/etc/*"

임의 파일 읽기:

root@kitploit:~
python3 CVE-2025-10952.py --target TARGET --port 8081 --read "//root/.ssh/id_rsa"

읽고 디스크에 저장:

root@kitploit:~
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 기본 포트입니다. 대시보드 프런트엔드는 일반적으로 별도 포트에서 제공되며 취약한 경로에 포함되지 않습니다.

익스플로잇 워크플로우

  1. 대상의 /glob 엔드포인트가 Allow: POST와 함께 405 Method Not Allowed로 응답하는지 확인합니다 — 이를 통해 정적 대시보드 프런트엔드와 API 포트를 구분합니다.
  2. --glob으로 접근 가능한 경로를 열거하여 관심 있는 파일(SSH 키, 구성 파일, 자격 증명 저장소)을 매핑합니다.
  3. 절대 경로에 이중 선행 슬래시를 사용하여 --read로 대상 파일을 검색합니다.
  4. 파일이 개인 키인 경우 인증에 직접 사용합니다(위 사용법 참조).

탐지 및 완화

  • 네트워크: ml-logger 서비스 포트로 향하는 .., 이중 선행 슬래시(//), 또는 절대 경로 접두사(/etc, /root, /proc)를 포함하는 key/path 스타일 JSON 필드에 대한 경고를 설정합니다.
  • 호스트: ~/.ssh/, /etc/shadow, /etc/passwd에 대한 파일 무결성 또는 접근 모니터링은 ml-logger 프로세스 ID에서 발생하는 읽기를 플래그해야 합니다.
  • 노출: 인증 리버스 프록시 없이 ml-logger를 신뢰할 수 없는 네트워크에 노출하지 마십시오.
  • 수정: stream_handler에서 경로 포함 제한(os.path.realpath() 확인을 허용 목록 기본 디렉터리와 대조)을 적용하고, 전용 권한 없는 OS 계정으로 서비스를 실행하십시오.

참조

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-10952
  • GitHub Advisory: https://github.com/advisories/GHSA-9x36-c74v-fgr6
  • 원본 보고서: https://github.com/geyang/ml-logger/issues/74
  • 프로젝트: https://github.com/geyang/ml-logger

⚠️ 면책 조항

이 저장소는 ml-logger의 인증되지 않은 정보 공개 취약점인 CVE-2025-10952에 대한 개념 증명 익스플로잇을 포함합니다. 이 코드는 소유하거나 테스트에 대한 명시적 승인을 받은 환경에서만 사용하십시오. 저자는 이 소프트웨어로 인한 오용이나 손해에 대해 책임을 지지 않습니다.

라이선스

LICENSE를 참조하십시오.

도구 다운로드