CVE-2021-37699は、Next.jsにおけるオープンリダイレクトの脆弱性です。この脆弱性は、特別に細工されたパスがpages/_error.jsで静的生成された場合に悪用され、攻撃者が信頼されたドメインから外部サイトへリダイレクトする可能性があります。影響を受けるバージョンは、Next.js 10.0.5から10.2.0、および11.0.0から11.0.1です。この脆弱性は11.1.0で修正されています。
この脆弱性は、攻撃者がNext.jsアプリケーションの信頼性を利用してユーザーを悪意のあるサイトへリダイレクトすることを可能にします。これにより、フィッシング攻撃やマルウェア感染のリスクが高まります。攻撃者は、Next.jsアプリケーションのURLに巧妙に細工されたパラメータを埋め込むことで、ユーザーを意図しないサイトへ誘導できます。特に、Next.jsアプリケーションが認証を必要としないページにリンクされている場合、攻撃の影響は広範囲に及ぶ可能性があります。この脆弱性の悪用により、ユーザーの個人情報や機密情報が盗まれる可能性があります。
この脆弱性は、CISA KEVカタログには登録されていません。現時点で公的なPoCは確認されていませんが、オープンリダイレクト脆弱性は比較的容易に悪用できるため、注意が必要です。NVD(National Vulnerability Database)は2021年8月12日に公開されています。
Organizations and developers using Next.js for website development, particularly those relying on the pages/_error.js file for error handling and static generation, are at risk. Shared hosting environments where multiple applications share the same server and configuration are also potentially vulnerable if they are running affected versions of Next.js.
• nodejs / server:
find /path/to/nextjs/pages/ -name _error.js -print• generic web:
curl -I https://your-nextjs-app.com/malicious-redirect | grep Location• generic web: Inspect access logs for requests containing suspicious redirect URLs (e.g., containing encoded characters or unusual domain names).
disclosure
エクスプロイト状況
EPSS
0.43% (62% パーセンタイル)
CVSS ベクトル
この脆弱性への対応策として、まずNext.jsをバージョン11.1.0以降にアップデートすることを推奨します。アップデートが困難な場合は、pages/_error.jsファイルが存在する場合、getInitialProps関数内でリダイレクト先を検証するロジックを追加することで、脆弱性を軽減できます。また、WAF(Web Application Firewall)を導入し、リダイレクト先が信頼できないドメインでないことを確認するルールを設定することで、攻撃を防御できます。さらに、アクセスログを監視し、不審なリダイレクトのパターンを検出することも有効です。
Next.js をバージョン 11.1.0 以降にアップデートしてください。これにより、Open Redirect の脆弱性が修正されます。npm または yarn でアップデートできます。
脆弱性分析と重要アラートをメールでお届けします。
CVE-2021-37699は、Next.jsアプリケーションにおいて、特別に細工されたパスがpages/_error.jsで静的生成された場合に、攻撃者が外部サイトへリダイレクトできる脆弱性です。
Next.jsのバージョンが10.0.5~10.2.0、または11.0.0~11.0.1を使用している場合は、影響を受ける可能性があります。pages/_error.jsを使用している場合も注意が必要です。
Next.jsをバージョン11.1.0以降にアップデートすることを推奨します。アップデートが難しい場合は、pages/_error.jsファイル内でリダイレクト先を検証するロジックを追加してください。
現時点で公的なPoCは確認されていませんが、オープンリダイレクト脆弱性は比較的容易に悪用できるため、注意が必要です。
Next.jsの公式アドバイザリは、Next.jsのGitHubリポジトリのリリースノートで確認できます。