SvelteKitとVercelスタックのキャッシュ欺瞞脆弱性がユーザー情報を暴露

概要

SvelteKitアプリケーションがVercelでデプロイされた場合、公開キャッシュ応答を認証できるため、重要なユーザーデータが攻撃者に暴露される可能性があります。この脆弱性は、CVE-2026-27118 (GHSA-9pq4-5hcf-288c) として識別され、Vercelアダプターの __pathname クエリパラメータが要求パスを上書きする際にチェックが行われないことが原因です。

脆弱性の詳細

SvelteKitはフルスタックJavaScriptフレームワークで、Vercelとよく組み合わされます。この問題はSvelteKitのVercelアダプターに起因し、/_app/immutable/ 以下のパスが影響を受けます。

攻撃者はログインしているユーザーを偽装されたURL(例:https://example.vercel.app/_app/immutable/x?__pathname=/api/session)に誘導し、適切なクッキーを使用してプライベートデータを取得します。その後、攻撃者は同じURLを匿名で要求することでキャッシュからデータを取り出すことができます。

影響範囲と対策

この脆弱性は、Vercel上でCookieベースの認証を使用するSvelteKitサイトに影響を与えます。Vercelでは自動的に修正が行われますが、ユーザーは@sveltejs/adapter-vercelを最新バージョン(6.3.2+)にアップグレードし、Aikidoなどのツールでリポジトリを再スキャンすることをお勧めします。

タイムライン

  • 発見とPoC: 2026年1月20日
  • Vercelへの報告: 2026年1月20日
  • レポートのトリガー化: 2026年1月21日
  • 修正作業開始: 2026年1月23日
  • 修正とアドバイザリ公開: 2026年2月9日

元記事: https://gbhackers.com/cache-deception-sveltekit-vercel-data/