MyTubeは複数の動画サイト向けのセルフホスト型ダウンローダー兼プレイヤーです。バージョン1.7.65およびそれ以前の可能性のあるバージョンに存在する脆弱性により、認証されていないユーザーがroleBasedAuthMiddleware内の必須認証チェックをバイパスできます。認証クッキーを提供しない(req.userが未定義になる)だけで、リクエストが誤って下流のハンドラーに通過します。loginEnabled: trueでMyTubeを実行しているすべてのユーザーが影響を受けます。この欠陥により攻撃者は/api/settings経由でアプリケーション設定にアクセスおよび変更でき、管理者および訪問者のパスワードを変更でき、この特定のミドルウェアに依存する他の保護されたルートにもアクセスできます。この問題はv1.7.66で修正されました。MyTubeのメンテナはすべてのユーザーに対し、インスタンスの安全性を確保するため、少なくともv1.7.64へ即時アップグレードすることを推奨しています。修正では、ミドルウェアが明示的にユーザーが認証されていない場合にリクエストをブロックし、単にnext()を呼ぶのを防止します。直ちにアップグレードできない場合は、ファイアウォールやリバースプロキシ(Nginxなど)を用いて/api/エンドポイントへのアクセスを信頼できるIPアドレスのみに制限するか、ソースコードを編集できる場合はroleBasedAuthMiddlewareを見つけて、req.userが未定義の時にnext()を呼ぶのではなくエラー(401 Unauthorized)を返すようロジックを修正してリスクを軽減してください。
|