DeepDiff — это проект, ориентированный на Deep Difference и поиск любых данных Python. Начиная с версии 5.0.0 и до версии 8.6.2, средство распаковки _RestrictedUnpickler проверяет, какие классы могут быть загружены, но не ограничивает их аргументы конструктора. Некоторые типы в SAFE_TO_IMPORT имеют конструкторы, которые выделяют память пропорционально их входным данным (builtins.bytes, встроенные.список, встроенные.диапазон).
Полезная нагрузка Pickle размером 40 байт может потребовать более 10 ГБ памяти, что приводит к сбою приложений, которые загружают дельта-объекты или вызывают Pickle_load с ненадежными данными. Эта проблема исправлена в версии 8.6.2.
Показать оригинальное описание (EN)
DeepDiff is a project focused on Deep Difference and search of any Python data. From version 5.0.0 to before version 8.6.2, the pickle unpickler _RestrictedUnpickler validates which classes can be loaded but does not limit their constructor arguments. A few of the types in SAFE_TO_IMPORT have constructors that allocate memory proportional to their input (builtins.bytes, builtins.list, builtins.range). A 40-byte pickle payload can force 10+ GB of memory, which crashes applications that load delta objects or call pickle_load with untrusted data. This issue has been patched in version 8.6.2.
Характеристики атаки
Последствия
Строка CVSS v4.0