CVE-2018-6874:Auth0認証サービスにおけるセキュリティ脆弱性

公開日:2018年4月4日

CVE番号:CVE-2018-6874

著者:社外秘

概要

Auth0認証サービスで脆弱性が特定されました。サービスの管理ダッシュボードでLegacy Lock APIフラグが有効になっているサービスのテナントが影響を受けます。フラグが表示されていない場合は無効になっています。フラグを無効にすると、クロスドメインのユーザー名/パスワードベースの認証(埋め込みログインとも呼ばれます)にバージョン< 9.0.0のauth0.jsライブラリまたはバージョン< 11.0.0のLockライブラリを使用しているアプリケーションが機能しなくなる可能性があります。さらに、これらのライブラリ以外での/usernamepassword/login認証APIエンドポイントのクロスドメイン使用も影響を受ける可能性があります。

/usernamepassword/loginでユーザー資格情報が検証されると、HTMLフォームがユーザーのブラウザにレンダリングされ、自動的に実行されます。JSON Web Token(JWT)を/login/callbackエンドポイントにPOSTします。この認証済みトークンは、ユーザーのIDに関する状態を維持します。これは、ほとんどの最新ブラウザで維持されているクロスドメインセッション管理の制限により、直接実行することはできません。セッションバインディングがないため、このフォームのPOSTはCSRFの影響を受けます。Auth0テナントで有効なユーザー資格情報を持つ攻撃者は、これを悪用してかかるフォームを取得し、ソーシャルエンジニアリングやクリックジャッキングなどの手法により標的のブラウザで実行させることができます。その後、標的が攻撃者のアカウントでAuth0テナントにログインセッションを行うため、フェデレーション内の下流アプリケーションによって攻撃者として認識されます。ユーザーが悪意を持ってログインした状態で何らかのアクションを実行すると、そのアクションと関連情報が攻撃者に表示されます。

この攻撃では、攻撃者に代わって権限を昇格することは許可されず、攻撃者に表示される標的のアクションは、システム内で攻撃者に付与されている権限に制限されます。標的はフェデレーション内でも完全に攻撃者として認識されるため、アカウント情報や、自分のアカウントの権限内で操作していないことを明らかにするその他コンテキストの手がかりが表示される場合があります。

自分は影響を受けますか?

Auth0テナントにユーザー名/パスワード認証(任意のデータベースや接続を使用)を採用しており、Auth0管理ダッシュボードのLegacy Lock APIフラグが表示され、フラグがオンになっている場合、影響を受けます。

修正方法

脆弱性を軽減するには、フラグをオフに切り替えます。/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は、この脆弱性の影響を受けません。

この更新はユーザーに影響を与えますか?

アプリケーションを移行せずにLegacy Lock APIを無効にすると、影響を受ける機能を使用するすべてのユーザーログインが機能しなくなります。Auth0は、2018年7月16日にすべてのテナントに対してLegacy Lock APIの無効化を強制する予定です。移行の選択により、サービスにログインする際の特定のユーザーエクスペリエンスが影響を受ける可能性がありますが、ユーザー、ユーザーの情報、およびユーザーのセッションにはその他の影響はありません。