LangChain — это платформа для создания агентов и приложений на базе LLM. До версий 0.3.85 и 1.3.3 LangChain содержал старые пути кода времени выполнения, которые десериализуют входные данные запуска, выходные данные запуска или другие полезные данные, управляемые приложением, с использованием слишком широких списков разрешенных объектов. Эти пути могут вызывать функцию load() с разрешенными_объектами="all".
Это не позволяет десериализовать произвольный объект Python, но позволяет восстановить любой доверенный сериализуемый LangChain объект, что шире, чем требуют эти пути выполнения. В результате предоставленные злоумышленником сериализованные словари конструкторов LangChain могут привести к тому, что доверенные пути среды выполнения будут создавать экземпляры классов с недоверенными аргументами конструктора. Эта уязвимость исправлена в версиях 0.3.85 и 1.3.3.
Показать оригинальное описание (EN)
LangChain is a framework for building agents and LLM-powered applications. Prior to 0.3.85 and 1.3.3, LangChain contains older runtime code paths that deserialize run inputs, run outputs, or other application-controlled payloads using overly broad object allowlists. These paths may call load() with allowed_objects="all". This does not enable arbitrary Python object deserialization, but it does allow any trusted LangChain-serializable object to be revived, which is broader than these runtime paths require. As a result, attacker-supplied LangChain serialized constructor dictionaries may cause trusted runtime paths to instantiate classes with untrusted constructor arguments. This vulnerability is fixed in 0.3.85 and 1.3.3.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 2
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Langchain Langchain
cpe:2.3:a:langchain:langchain:*:*:*:*:*:*:*:*
|
— |
0.3.85
|
|
Langchain Langchain
cpe:2.3:a:langchain:langchain:*:*:*:*:*:*:*:*
|
1.0.0
|
1.3.3
|