Hydra — это платформа для элегантной настройки сложных приложений. До версии 1.3.4 Hydra.utils.instantiate() разрешает и вызывает объекты Python, выбранные конфигурацией с помощью _resolve_target() в гидре/_internal/instantiate/_instantiate2.py, позволяя контролируемым злоумышленником целевым значениям и аргументам выбирать опасные вызываемые объекты. Таким образом, потребляющее приложение, библиотека, рабочий процесс CLI или загрузчик модели, которые передают ненадежную конфигурацию, переопределения CLI или метаданные модели в Hydra.utils.instantiate(), могут выполнять произвольный код в своем собственном процессе, включая чтение или изменение файлов и учетных данных или завершение процесса.
В версии 1.3.4 добавлена целевая блокировка с помощью явного аварийного люка HYDRA_INSTANTIATE_ALLOWLIST_OVERRIDE. Эта проблема исправлена в версии 1.3.4.
Показать оригинальное описание (EN)
Hydra is a framework for elegantly configuring complex applications. Prior to 1.3.4, hydra.utils.instantiate() resolves and calls Python objects selected by configuration through _resolve_target() in hydra/_internal/instantiate/_instantiate2.py, allowing attacker-controlled target values and arguments to choose dangerous callables. A consuming application, library, CLI workflow, or model loader that passes untrusted configuration, CLI overrides, or model metadata into hydra.utils.instantiate() can therefore execute arbitrary code in its own process, including reading or modifying files and credentials or terminating the process. Version 1.3.4 adds target blocking with an explicit HYDRA_INSTANTIATE_ALLOWLIST_OVERRIDE escape hatch. This issue is fixed in version 1.3.4.
Характеристики атаки
Последствия
Строка CVSS v3.1