chore(deps): update dependency langgraph to v1.0.10 [security]#412
Open
renovate-bot wants to merge 1 commit intogoogleapis:mainfrom
Open
chore(deps): update dependency langgraph to v1.0.10 [security]#412renovate-bot wants to merge 1 commit intogoogleapis:mainfrom
renovate-bot wants to merge 1 commit intogoogleapis:mainfrom
Conversation
|
/gcbrun |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==1.0.7→==1.0.10GitHub Vulnerability Alerts
CVE-2026-28277
LangGraph checkpointers can load msgpack-encoded checkpoints that reconstruct Python objects during deserialization. If an attacker can modify checkpoint data in the backing store (for example, after a database compromise or other privileged write access to the persistence layer), they can potentially supply a crafted payload that triggers unsafe object reconstruction when the checkpoint is loaded.
This is a post-exploitation / defense-in-depth issue. Exploitation requires the ability to write attacker-controlled checkpoint bytes at rest. In most deployments that prerequisite already implies a serious incident; the additional risk is turning “checkpoint-store write access” into code execution in the application runtime, which can expand blast radius (for example by exposing environment variables or cloud credentials available to the runtime).
There is no evidence of exploitation in the wild, and LangGraph is not aware of a practical exploitation path in existing deployments today. This change is intended to reduce the blast radius of a checkpoint-store compromise.
Affected users / systems
Users may be affected if they:
This issue requires the attacker to be able to modify persisted checkpoint bytes (or to compromise a trusted component that writes them). It is generally not reachable by an unauthenticated remote attacker in a correctly configured deployment.
Impact
Exploitation scenario (high level)
Mitigation / remediation
LangGraph provides an allowlist-based hardening mechanism for msgpack checkpoint deserialization.
Strict mode (environment variable)
LANGGRAPH_STRICT_MSGPACK1,true,yes), the default msgpack deserialization policy becomes strict.JsonPlusSerializer()will defaultallowed_msgpack_modulestoNone(strict) instead ofTrue(warn-and-allow), unlessallowed_msgpack_modules=...is explicitly passed.allowed_msgpack_modules(serializer/checkpointer config)This setting controls what msgpack “ext” types are allowed to be reconstructed.
True(default when strict mode is not enabled): allow all ext types, but log a warning when deserializing a type that is not explicitly registered.None(strict): only a built-in safe set is reconstructed; other ext types are blocked.[(module, class_name), ...](strict allowlist): the built-in safe set plus exactly the listed symbols are reconstructed (exact-match).Built-in safe set
A small set of types is always treated as safe to reconstruct (for example
datetimetypes,uuid.UUID,decimal.Decimal,set/frozenset/deque,ipaddresstypes,pathlibpaths,zoneinfo.ZoneInfo, compiled regex patterns, and selected LangGraph internal types).Automatically derived allowlist (only when compiling graphs)
When
LANGGRAPH_STRICT_MSGPACKis enabled andStateGraphis compiled, LangGraph derives an allowlist from the graph’s schemas and channels and applies it to the checkpointer.Annotated).This derived allowlist is only applied if the selected checkpointer supports
with_allowlist(...). If a user is constructing serializers/checkpointers manually (or using a checkpointer that does not support allowlist propagation), they will need to configureallowed_msgpack_modulesthemselves.Operational guidance
LANGGRAPH_STRICT_MSGPACK=true) in production if feasible, and rely on schema-driven allowlisting to reduce incompatibilities.Limitations / important notes
with_allowlist), allowlist enforcement may be skipped (with a warning). In that situation, strict expectations may not hold.ext_hook), the custom hook controls reconstruction and can bypass the default allowlist checks (intentional escape hatch, but it weakens the protection).LangSmith / hosted deployments note
LangSmith is not aware of this issue presenting risk to existing LangSmith-hosted deployments. The described threat model requires an attacker to tamper with the checkpoint persistence layer used by the deployment; typical hosted configurations are designed to prevent such access.
First reported by: yardenporat353
Release Notes
langchain-ai/langgraph (langgraph)
v1.0.10: langgraph==1.0.10Compare Source
Changes since 1.0.10rc1
v1.0.9: langgraph==1.0.9Compare Source
Changes since 1.0.8
v1.0.8: langgraph==1.0.8Compare Source
Changes since 1.0.7
RuntimeandToolRuntimeclass descriptions for clarity (#6689)thread_id(#6515)add_nodeoverloads (#6514)Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.