Skip to content
OpenAdvisories
High · 8.2 CVE-2026-44843 EUVD-2026-31976GHSA-pjwx-r37v-7724PYSEC-2026-2564

LangChain: Unsafe deserialization of attacker-controlled LangChain objects through overly broad `load()` allowlists

Published May 26, 2026 · Updated May 27, 2026 · Assigned by GitHub_M

Description

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.

Affected products

VendorProductAffectedFixed
langchain-ai langchain < 0.3.85, >= 1.0.0a1, < 1.3.3 —

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI langchain-core >= 1.0.0, < 1.3.3 1.3.3 GHSA-pjwx-r37v-7724
PyPI langchain-core < 0.3.85 0.3.85 GHSA-pjwx-r37v-7724
PyPI langchain-core < 0.3.85 · >= 1.0.0, < 1.3.3 0.3.85, 1.3.3 PYSEC-2026-2564

Advisories 1

References