AIエージェントフレームワークLangChain Coreに、CVSSスコア9.3の重大な脆弱性(CVE-2025-68664)が発見されました。「LangGrinch」とも呼ばれるこの脆弱性は、安全でないシリアライゼーションを通じてシークレットの窃取やプロンプトインジェクションを可能にするものです。
脆弱性は、LangChainのdumps()およびdumpd()関数において、「lc」キーを持つ辞書をシリアライズする際にエスケープ処理が行われないことに起因します。「lc」キーはLangChain内部でシリアライズされたオブジェクトをマークするために使用されており、ユーザー制御のデータにこのキー構造が含まれている場合、デシリアライゼーション時にプレーンなユーザーデータではなく正規のLangChainオブジェクトとして処理されてしまいます。
最も一般的な攻撃ベクターは、LLMの応答フィールド(additional_kwargsやresponse_metadataなど)を通じたもので、プロンプトインジェクションにより制御され、ストリーミング操作でシリアライズ・デシリアライズされます。想定される被害として、環境変数からのシークレット抽出(以前はsecrets_from_env=Trueがデフォルトでした)、事前承認された名前空間内のクラスのインスタンス化、Jinja2テンプレート経由での任意コード実行の可能性があります。
Hacker Newsでは「AIエージェントフレームワークの脆弱性管理が急務」との指摘があり、Redditでは「依存関係の多いフレームワークはリスクが高い」と警告されています。この脆弱性はLangChainバージョン0.3.81および1.2.5で修正されており、許可リストパラメータ「allowed_objects」の導入、Jinja2テンプレートのデフォルト無効化、secrets_from_envオプションのデフォルトFalse設定が行われています。