Библиотека Python skops, используемая для обмена и поставки моделей на основе scikit-learn, содержит несоответствие в OperatorFuncNode, кот…
Библиотека Python skops, используемая для обмена и поставки моделей на основе scikit-learn, содержит несоответствие в OperatorFuncNode, которое может быть использовано для скрытия выполнения недоверенных методов операторов. Это может быть использовано в атаке повторного использования кода для вызова кажущихся безопасными функций и эскалации до произвольного выполнения кода с минимальными и вводящими в заблуждение доверенными типами. Проблема исправлена в версии 0.12.0 [1]. Детальное описание уязвимости показывает, что OperatorFuncNode позволяет вызывать методы из модуля operator, включённые в список доверенных методов. Однако то, что возвращается get_untrusted_types и проверяется во время загрузки, не совсем то же самое, что фактически вызывается. Вместо этого это частично контролируется автором модели, что позволяет обмануть пользователя, заставляя его думать, что используется что-то безобидное, в то время как на самом деле выполняется метод operator.xxx [2]. Злоумышленник может создать файл модели со структурой zip, содержащей schema.json и скрытую модель my-model-evil.skops. schema.json может быть сформирован так, чтобы при загрузке модели выполнялся произвольный код [1]. Исправление состоит в том, чтобы get_untrusted_types и load проверяли то, что фактически вызывается во время построения OperatorFuncNode, а не полагались на конкатенацию ключей __module__ и __class__, которые не отражают истинного поведения в данном случае. Источники: - [1] https://github.com/skops-dev/skops/security/advisories/GHSA-mf4-hrc6-fwg3 - [2] https://github.com/skops-dev/skops/commit/0aeca055509dfb48c1506870aabdd9e247adf603 - [3] https://github.com/skops-dev/skops/releases/tag/v0.12.0
Продукт не различает должным образом различные типы элементов, что приводит к небезопасному поведению.
https://cwe.mitre.org/data/definitions/351.html →Открыть в коллекции CWE →