概要
Langchain開発チームは、@langchain/communityパッケージのServer-Side Request Forgery (SSRF)脆弱性に対処するための重要なセキュリティアップデートを公開しました。この脆弱性はCVE-2026-26019として識別され、RecursiveUrlLoaderクラスに存在します。
脆弱性の詳細
CVE-2026-26019は、URLのオリジン検証が不十分であるため、攻撃者が内部ネットワークリソースや敏感なクラウドメタデータにアクセスできる可能性があります。この脆弱性を悪用すると、攻撃者はドメイン制限をバイパスし、アプリケーションを内部ネットワークリソースまたは敏感なクラウドメタデータサービスにアクセスさせることができます。
問題の核心
問題の核心は、RecursiveUrlLoaderがURLを検証する方法にあります。このユーティリティにはデフォルトで有効なpreventOutsideオプションがあり、クロール操作中にURLが同じウェブサイト内に制限されるように設計されています。
しかし、この実装は文字列比較を使用しており、厳密なURLオリジン検証を行っていません。これにより、攻撃者はターゲットドメインとプレフィックスを共有する悪意のあるドメインを作成し、チェックをバイパスすることができます。
具体的な例
例えば、クロールがhttps://example.comに設定されている場合、攻撃者はこれをhttps://example.com.attacker.comに導くことができます。文字列のプレフィックスが一致するため、チェックをバイパスすることができます。
その他の脆弱性
以前のバージョンのクローラーは、プライベートまたは予約済みIPアドレスに対して検証を行っていませんでした。これにより、攻撃者がページをクロールする際にコンテンツを影響させることができ、内部目的地へのリンクを挿入することができます。
修正内容
Langchainはこの脆弱性をバージョン1.1.14で修正しました。まず、文字列比較がURL APIを使用した厳密なオリジンチェックに置き換えられました。これにより、スキーム、ホスト名、ポートが完全に一致することが確認されます。
次に、SSRF検証モジュールが導入され、すべての外部リクエスト前に実行されるようになりました。このモジュールは、プライベートIP範囲、ローカルループバックアドレス、169.254.169.254などの既知のクラウドメタデータエンドポイントへの接続を明示的にブロックします。
対策
@langchain/communityを使用している開発者は、すぐにバージョン1.1.14にアップグレードすることをお勧めします。直ちにアップグレードが不可能な場合は、ユーザーはRecursiveUrlLoaderを信頼できないユーザ生成コンテンツで実行しないか、内部サービスやクラウドメタデータAPIへのアクセスを制限した隔離ネットワーク環境でアプリケーションをデプロイすることをお勧めします。
元記事: https://gbhackers.com/langchain-community-ssrf-bypass-vulnerability/
