注目★★★★★GitHub Advisory
9router に認証回避の脆弱性、デフォルト JWT シークレットが硬化コード化
30秒で把握
- 19router v0.2.21~v0.4.41 に認証回避脆弱性、デフォルト JWT シークレットが周知の硬化コード
- 2JWT_SECRET 環境変数未設定時、ダッシュボード・API への完全アクセスが認証なしで可能
- 3本番サーバのアクセスログ確認と JWT_SECRET 即時設定・権限見直しが必須
要約
9router は JWT_SECRET 環境変数が未設定のとき、公開リポジトリに書かれた「9router-default-secret-change-me」というデフォルトシークレットを使用する。このシークレットは周知で不変なため、認証なしの攻撃者は有効な auth_token クッキーを偽造してダッシュボードと API に完全アクセスできる。脆弱性は v0.2.21 から v0.4.41 まで影響し、多くの公開 9router サーバが該当する。コミット 23cfb19 で導入されたこのデフォルト文字列は削除されたことがなく、OIDC リファクタでも秘密文字列は変更されずに再配置されただけだ。
あなたへの影響
9router を本番運用する場合、JWT_SECRET 環境変数の設定有無を即座に確認し、未設定なら本番環境のサーバアクセスログで不正なトークン生成・利用の痕跡を検査すべき。
推奨:同時に秘密の強い値への即座のリセットと、ダッシュボードアクセス権限の見直しを推奨。