LangGraph デシリアライズの脆弱性 CVE-2025-64439 が FIX:任意の Python コードの実行

LangGraph Deserialization Flaw Enables Execution of Malicious Python Code

2025/11/10 gbhackers — LangGraph のチェックポイント・シリアライズ・ライブラリに、深刻なリモート・コード実行の脆弱性が発見された。この脆弱性は、すべてのチェックポイント操作で使用されるデフォルトのシリアライズ・プロトコルである JsonPlusSerializer コンポーネントに存在し、バージョン 3.0 未満に影響を及ぼすという。この脆弱性 CVE-2025-64439 を悪用する攻撃者は、悪意のあるペイロードのデシリアライズ中に任意の Python コードを実行できる。

脆弱性の仕組み

この脆弱性は、JsonPlusSerializer の安全でないフォールバック・メカニズムに起因する。このライブラリはシリアライズに msgpack を使用するが、不正な Unicode サロゲート値によりシリアライズが失敗すると、自動的に “json” モードにフォールバックする。

このモードでのデシリアライズ中にシステムがサポートするのは、ロード時にカスタム・オブジェクトを再構築するためのコンストラクタのフォーマットである。したがって攻撃者は、デシリアライズ中にシステム・コマンドまたは任意の関数を実行する悪意のペイロードを作成することで、この機能を悪用し得る。

この問題により、信頼できないデータやユーザー提供データのチェックポイントへの保存が許可されている、バージョン 3.0 未満の langgraph-checkpoint ユーザーに影響が生じる。

アプリケーションが信頼できるデータのみを処理する場合や、チェックポイントへの書き込みを制限している場合には、実質的なリスクは大幅に軽減される。ただし、外部入力を受け入れるシステムでは、早急な対応とパッチ適用が必要となる。

すでに LangGraph は、チェックポイント・ライブラリのバージョン 3.0.0 をリリースし、この問題に対処している。

AttributeDetails
CVE IDCVE-2025-64439
Vulnerability TypeRemote Code Execution (RCE)
ComponentLangGraph JsonPlusSerializer
Affected Versionslanggraph-checkpoint < 3.0
Patched Versionslanggraph-checkpoint >= 3.0
SeverityHigh (7.5 CVSS v4)
Attack VectorNetwork
Privileges RequiredLow

この修正により、コンストラクタのデシリアライズに許可リストが実装され、許可されるコード・パスが明示的に承認されたモジュールとクラスの組み合わせに制限された。

さらに、ペイロードを “json” 形式で保存することは非推奨となり、安全でないフォールバックは完全に削除された。このアップデートは LangGraph 0.3 と完全に互換性があり、実装におけるコード変更は不要である。

ユーザー組織にとって必要なことは、langgraph-checkpoint バージョン 3.0.0 への速やかなアップグレードである。また、LangGraph API を導入しているユーザーは、バージョン 0.5 以降にアップデートすべきである。それにより、パッチ適用済みのチェックポイント・ライブラリが自動的に取り込まれる。

アップデート・プロセスは簡単であり、インポートの変更やアプリケーション・コードの変更は不要である。

深刻度が高く、悪用されやすいことを踏まえると、セキュリティ・アップデート・スケジュールにおいて、このパッチを最優先すべきだ。