注目★★★★★GitHub Advisory
Auth.js v5 の設定エラーが認証チェックを無効化、全リクエストを通す危険
30秒で把握
- 1Auth.js v5 の設定エラー時、auth オブジェクトがエラー内容で埋められ truthy になるため、存在チェックのみの認証ゲートが全リクエスト通す
- 2公式ガイドの `!!auth` パターンが実装されたアプリは設定破損で fail open となり、未認証ユーザーにもアクセス権付与
- 3Provider 必須設定不足 (Keycloak の issuer/authorization など) でトリガー、ログ監視と認証チェック実装の見直しが急務
要約
Auth.js (next-auth) v5 で、設定エラー発生時に `auth` オブジェクトが `null` ではなくエラーオブジェクトで埋められ、truthy 値となる。公式ガイドのように `!!auth` で認証チェックするアプリケーションは、設定が壊れると **すべてのリクエスト (未認証含む) にアクセスを許可してしまう (fail open)**。Keycloak など必須設定が不足した Provider でこの問題が発生する。
あなたへの影響
next-auth v5 を本番運用するチームは即座に設定の正確性を検証し、エラーログ (auth[error] の出力) を監視体制に加え、認証チェックロジックを `auth?.userId` など存在チェックより厳密な形に修正すべき。
推奨:今週中にチームで影響と対応方針を確認してください。