概要
< 9.0.0のauth0.jsライブラリまたはバージョン< 11.0.0のLockライブラリを使用しているアプリケーションが機能しなくなる可能性があります。さらに、これらのライブラリ以外での/usernamepassword/login認証APIエンドポイントのクロスドメイン使用も影響を受ける可能性があります。
/usernamepassword/loginでユーザー資格情報が検証されると、HTMLフォームがユーザーのブラウザにレンダリングされ、自動的に実行されます。(JWT)を/login/callbackエンドポイントにPOSTします。この認証済みトークンは、ユーザーのIDに関する状態を維持します。これは、ほとんどの最新ブラウザで維持されているクロスドメインセッション管理の制限により、直接実行することはできません。セッションバインディングがないため、このフォームのPOSTはCSRFの影響を受けます。Auth0テナントで有効なユーザー資格情報を持つ攻撃者は、これを悪用してかかるフォームを取得し、ソーシャルエンジニアリングやクリックジャッキングなどの手法により標的のブラウザで実行させることができます。その後、標的が攻撃者のアカウントでAuth0テナントにログインセッションを行うため、フェデレーション内の下流アプリケーションによって攻撃者として認識されます。ユーザーが悪意を持ってログインした状態で何らかのアクションを実行すると、そのアクションと関連情報が攻撃者に表示されます。
この攻撃では、攻撃者に代わって権限を昇格することは許可されず、攻撃者に表示される標的のアクションは、システム内で攻撃者に付与されている権限に制限されます。標的はフェデレーション内でも完全に攻撃者として認識されるため、アカウント情報や、自分のアカウントの権限内で操作していないことを明らかにするその他コンテキストの手がかりが表示される場合があります。
自分は影響を受けますか?
修正方法
/usernamepassword/loginエンドポイントは、/loginでホストされているユニバーサルログインページからのログインでは引き続き機能しますが、これらは同じドメインのログインであるため、CSRF から保護されます。それ以外の場合、フラグを切り替えると、そのエンドポイントでのクロスドメイン認証が無効になります。
auth0.jsバージョン< 9.0.0またはLockバージョン< 11.0.0を使用するアプリケーションの場合、これによりユーザーログインが機能しなくなる可能性があります。auth0.jsバージョン> 9.0.0またはLockバージョン> 11.0.0にアップグレードすると、クロスオリジン認証を使用して埋め込まれたユーザー名/パスワード認証が復元されます(制限に注意してください)。アプリケーションをユニバーサルログインに移行することも推奨されます。
Legacy Lock APIフラグがオフに設定されたバージョン> 14591を実行しているPrivate SaaS Appliancesは、この脆弱性の影響を受けません。