メインコンテンツへスキップ
公開日: 2018年4月4日 CVE番号: CVE-2018-6874 報告者: Internal

概要

Auth0 の認証サービスで脆弱性が確認されました。サービスの管理 Dashboard で Legacy Lock API フラグが有効になっているテナントが影響を受けます。フラグが表示されていない場合は、無効です。このフラグを無効にすると、クロスドメインの username/password ベースの認証 (埋め込みログイン とも呼ばれます) に auth0.js ライブラリのバージョン < 9.0.0、または Lock ライブラリのバージョン < 11.0.0 を使用しているアプリケーションが動作しなくなる可能性があります。さらに、これらのライブラリ以外で /usernamepassword/login Authentication API エンドポイントをクロスドメインで使用している場合も、影響を受ける可能性があります。 /usernamepassword/login でユーザーの認証情報が検証されると、HTML フォームがユーザーのブラウザーにレンダリングされ、自動的に実行されます。このフォームは、/login/callback エンドポイントに (JWT) を POST します。この認証済みトークンは、ユーザーの identity に関する state を維持します。これは、多くの最新ブラウザーにあるクロスドメインのセッション管理の制限により、直接行うことができません。セッションバインディングがないため、このフォーム POST は CSRF の影響を受けます。Auth0 テナントで有効なユーザーの認証情報を持つ攻撃者は、それを使ってこのようなフォームを取得し、さらにソーシャルエンジニアリングやクリックジャッキングなどの手法を用いて、被害者のブラウザーに実行させることができます。すると被害者は、その Auth0 テナントにおいて攻撃者のアカウントでログインセッションを持つことになり、そのフェデレーション内の下流アプリケーションから攻撃者として認識されます。ユーザーがこのように不正にログインさせられた状態で何らかの操作を行った場合、それらの操作と関連情報は攻撃者から見えるようになります。 この攻撃によって攻撃者の権限が昇格することはなく、攻撃者から見える被害者の操作も、その攻撃者にシステム内で付与されている permissions の範囲に制限されます。また、被害者はフェデレーション内で完全に攻撃者として認識されるため、自分自身のアカウントとして操作していないことを示すアカウント情報や、そのほかの状況的な手がかりが表示される可能性があります。

影響を受けますか?

Auth0 テナントで、任意のデータベースまたは接続を使用する username/password 認証を利用しており、Auth0 の管理 Dashboard に Legacy Lock API フラグが表示され、オンになっている場合は、影響を受けます。

それを修正するにはどうすればよいですか?

この脆弱性を軽減するには、フラグを off に切り替えてください。/usernamepassword/login エンドポイントは、/login でホストされる ページからのログインでは引き続き機能しますが、これらは同一ドメインのログインであるため、CSRF から保護されます。一方、このフラグを切り替えると、そのエンドポイントでのクロスドメイン認証は無効になります。 auth0.js version < 9.0.0 または Lock version < 11.0.0 を使用しているアプリケーションでは、これによってユーザーがログインできなくなる可能性があります。auth0.js version > 9.0.0 または Lock version > 11.0.0 にアップグレードすると、クロスオリジン認証を使用する埋め込み型の username/password 認証が再び利用可能になります (制限事項がある点に注意してください) 。また、アプリケーションは Universal Login への移行も推奨されます。 レガシー Lock API フラグが off に設定されている version > 14591 の Private SaaS Appliances は、この脆弱性の影響を受けません。

この更新はユーザーに影響しますか?

アプリケーションの移行が完了していない状態で Legacy Lock API が無効化されると、影響を受ける機能を使用しているすべてのユーザーがログインできなくなります。Auth0 は、2018 年 7 月 16 日にすべてのテナントで Legacy Lock API を無効化する予定です。移行方法の選択によっては、サービスへのログイン時の具体的なユーザー体験に影響する可能性がありますが、ユーザー、その情報、およびセッション自体がそれ以外の形で影響を受けることはありません。