[解説] DirectusのSSRF脆弱性 (CVE-2026-61835) - 内部情報漏洩の危険性
はじめに
DirectusはヘッドレスCMSとして広く利用されていますが、この度、ファイルインポート機能にSSRF (Server-Side Request Forgery) の脆弱性 (CVE-2026-61835 / GHSA-j5h6-vqc3-phqh) が発見されました。この脆弱性は深刻度が高く、認証済みのユーザーが悪用することで、Directusサーバー内部の機密情報が外部に漏洩する可能性があります。フロントエンドエンジニアの皆さんも、バックエンドのセキュリティリスクについて理解しておくことは非常に重要です。本記事では、この脆弱性の詳細、技術的な仕組み、そして取るべき対策について解説します。
脆弱性の概要 (CVE-2026-61835 / GHSA-j5h6-vqc3-phqh)
Directusのファイルインポート機能は、指定されたURLからファイルを読み込む際に、SSRF保護機能が実装されています。しかし、この保護機能に不備があり、特定のIPアドレス(`0.0.0.0`)がブロックリストから漏れていました。これにより、攻撃者は内部ネットワークへのアクセス制限を迂回し、サーバー自身(`localhost`)へのリクエストを強制することが可能になります。
結果として、Directusのファイル管理機能への書き込み権限を持つ認証済みユーザーが悪用することで、サーバー内部でのみアクセス可能なデータベース情報、キャッシュ、内部APIなどの機密情報が、ダウンロード可能なファイルとして外部に漏洩する恐れがあります。これは、過去に修正されたSSRF保護(CVE-2026-35409やCVE-2024-46990)をすり抜ける巧妙なものです。
SSRF (Server-Side Request Forgery) とは?
SSRFは、「サーバーサイドリクエストフォージェリ」と訳され、攻撃者がサーバーに対して、任意のURLへリクエストを送信させる攻撃手法です。通常、サーバーは外部からのリクエストに応じて様々な処理を行いますが、SSRF脆弱性があると、攻撃者はサーバー自身に「内部のネットワーク」や「自身が動いているサーバー自身」に対してリクエストを送らせることができます。これにより、外部からはアクセスできないはずの内部システムや機密情報にアクセスされ、それが攻撃者に漏洩する危険性があります。
今回のDirectus脆弱性の技術的背景
Directusのファイルインポート機能は、URLを指定して外部からファイルを取得する便利な機能ですが、ここにSSRFのリスクが潜んでいました。通常、SSRF対策として、`localhost` やプライベートIPアドレス(`192.168.x.x` など)へのアクセスはブロックリストで制限されます。
しかし、今回の脆弱性では、IPアドレス `0.0.0.0` がこのブロックリストから漏れていたことが問題でした。OSのネットワーク処理の仕様として、`0.0.0.0` への接続要求は「自身のサーバー(`localhost`)への接続」として扱われることがあります。この特性が悪用され、攻撃者は `/files/import` エンドポイントに対し、`url=http://0.0.0.0:xxxx/internal-api` のようなリクエストを送信します。するとDirectusサーバーは、自身で自身の内部サービス(データベース、キャッシュなど)にリクエストを送信し、その応答内容を外部にファイルとして出力してしまうのです。
この結果、データベースの認証情報やAPIキー、その他サーバー内部でのみ共有されるはずの機密情報が、攻撃者の手に渡る可能性があります。フロントエンド開発者は直接このバックエンドの脆弱性を攻撃することはありませんが、API設計やサーバーとの連携を考える上で、SSRFのようなバックエンド側のリスクも認識しておくことで、より堅牢なシステム構築に貢献できます。
影響を受けるバージョンと対策
この脆弱性の影響を受けるのは、**Directusのバージョン 12.0.0 以前** です。
脆弱性は **Directusのバージョン 12.0.0 以降** で修正されています。
システムを保護するためには、**直ちにDirectusを最新バージョン(12.0.0 以降)にアップデートすること**を強く推奨します。アップデートすることで、この脆弱性だけでなく、これまでに発見された他のセキュリティ問題も修正され、より安全な環境でDirectusを運用できます。
まとめ
Directusのファイルインポート機能におけるSSRF脆弱性 (CVE-2026-61835) は、認証されたユーザーが悪用することで内部機密情報が漏洩する可能性がある、深刻な問題です。フロントエンドエンジニアの皆さんも、利用しているCMSやAPIバックエンドのセキュリティ情報には常に注意を払い、迅速な対応が求められる場合は積極的に情報共有し、連携して対策を進めることが重要です。ぜひ、ご自身のプロジェクトでDirectusを使用している場合は、早急にバージョンアップを検討してください。