
CVE-2024-39722를 위한 익스플로잇 도구로, Ollama의 모델 존재 여부 노출 취약점입니다. 버전 확인, 공식 모델 라이브러리 크롤링, 취약한 서버에서의 멀티스레드 모델 탐색을 수행합니다.
이 도구는 Ollama 버전 0.1.45 이하에서 발생하는 모델 존재 여부 노출 취약점인 CVE-2024-39722를 익스플로잇하기 위해 설계되었습니다. 사용자는 Ollama 서버가 취약한지 확인하고 서버에 존재하는 모델을 발견하려 시도할 수 있습니다. 또한 공식 Ollama 모델 라이브러리를 크롤링하여 테스트할 잠재적 모델 목록을 생성할 수 있습니다. 中文
/api/push 엔드포인트에 특수하게 조작된 요청을 보내면 공격자는 서버에 특정 모델(공개 라이브러리에 없는 사용자 정의 모델 포함)이 존재하는지 확인할 수 있습니다.https://ollama.com/library)에서 모델 목록을 가져옵니다.requestslxmltermcolorCVE_2024_39722.py 스크립트를 다운로드합니다.pip install requests lxml termcolor
python CVE_2024_39722.py [options]
-h, --help: 도움말 메시지를 표시하고 종료합니다.-u URL, --url URL: 대상 Ollama 서버 URL (예: http://localhost:11434).-c, --crawl: Ollama 모델 라이브러리를 크롤링하고 links.json에 저장합니다.-o OUTPUT, --output OUTPUT: 결과 출력 파일 (기본값: results.json).-t THREADS, --threads THREADS: 익스플로잇에 사용할 스레드 수 (기본값: 10).-v, --version-check: 대상 Ollama 서버의 버전을 기준으로 취약한지 여부만 확인합니다.도움말 표시:
python CVE_2024_39722.py -h
Ollama 모델 라이브러리 크롤링:
https://ollama.com/library에서 모델 이름을 가져와 links.json에 저장합니다.
python CVE_2024_39722.py --crawl
대상 서버가 취약한지 확인:
python CVE_2024_39722.py -u http://localhost:11434 --version-check
대상 서버 익스플로잇:
먼저 서버의 버전을 확인합니다. 취약한 경우 links.json을 사용하여 모델 존재 여부를 테스트합니다(없으면 크롤링, 있으면 기존 파일 사용).
python CVE_2024_39722.py -u http://localhost:11434
특정 스레드 수로 익스플로잇:
python CVE_2024_39722.py -u http://localhost:11434 -t 20
익스플로잇 후 결과를 사용자 지정 파일에 저장:
python CVE_2024_39722.py -u http://localhost:11434 -o discovered_models.json
이 도구는 교육 및 승인된 보안 테스트 목적으로만 사용해야 합니다. 소유자의 명시적 허가 없이 어떤 시스템에서도 사용하지 마십시오. 저자는 이 도구로 인한 오용이나 손해에 대해 책임을 지지 않습니다.