LangChain disclosed and patched CVE-2026-44843, an unsafe deserialization flaw in older runtime code paths that processed application-controlled run inputs, run outputs, and related payloads with overly broad load() allowlists. In versions prior to 0.3.85 and 1.3.3, some paths could call load() with allowed_objects="all", allowing attacker-supplied serialized constructor dictionaries to revive trusted LangChain-serializable objects instead of only the narrowly required classes. The issue does not enable arbitrary Python object deserialization, but it can still instantiate trusted LangChain classes with untrusted arguments.
LangChain said exploitation requires applications to accept untrusted structured input, preserve nested attacker-controlled data in run data, and use vulnerable deserialization paths such as RunnableWithMessageHistory, astream_log(), or astream_events(version="v1"). The company warned the flaw could lead to persistent chat-history poisoning, prompt manipulation, unexpected object instantiation, and in some cases credential disclosure or server-side requests during object initialization. The fixes tighten load() and loads() behavior, address a related _is_lc_secret validation bypass, and are accompanied by guidance to migrate away from deprecated APIs and restrict deserialization to trusted manifests with narrow allowed_objects settings.

Track how attackers are adapting to this technology.
2 events from the most recent confirmed update back to the earliest known activity.
The unsafe deserialization issue was publicly tracked as CVE-2026-44843, describing exposure in LangChain versions prior to 0.3.85 and 1.3.3. The CVE entry noted that the flaw could instantiate trusted LangChain classes from attacker-supplied constructor dictionaries, but did not permit arbitrary Python object deserialization.
LangChain addressed a vulnerability in older runtime deserialization paths that used overly broad load() allowlists, allowing attacker-controlled serialized LangChain objects to be revived in certain application flows. The fix tightened load()/loads() behavior, deprecated affected older APIs, and also corrected a related _is_lc_secret validation bypass.
Vulnerabilities, threat actors, malware, products, organizations, and breaches Mallory has linked to this story.
Follow how adversaries are adapting to this technology, and where it touches your stack today.
2 references tracked. Mallory keeps watching after this page renders.
cvefeed.io
Open sourcegithub.com
Open sourceMap indicators from this story to your assets and identify affected systems in minutes.
Every observed campaign, victim, and pivot linked to actors named in this story.
Malware, exploits, and IOCs connected to the activity described here.
YARA, Sigma, and Snort rules deployed to your SIEM as soon as they’re published.
Get matching new stories delivered to your team as they break — not the next morning.
Ask questions about this story and take action on the answers.