AshAuthentication の OAuth2 および OIDC 戦略において、ユーザーの識別にメールアドレスを使用していることに起因する脆弱性が存在する。本来、OpenID Connect 仕様では一意識別のために iss (発行者) と sub (被認証者) の組み合わせを使用すべきだが、本パッケージはメールアドレスでローカルアカウントとの紐付けを行っていた。このため、メールアドレスの所有確認が不十分な OAuth プロバイダーを攻撃者が利用することで、被害者のメールアドレスを騙って被害者のアカウントにログインし、フルアクセス権限を奪取することが可能となる。この問題はデフォルト設定で発生し、アプリケーション側の特別な設定不備を必要としない。
対象ソフト
AshAuthentication は、Elixir 言語の Ash フレームワーク向け認証拡張パッケージである。Web アプリケーションに OAuth2 や OIDC による外部認証機能を統合するために利用される。
影響
認証されていない遠隔の攻撃者が、被害者のアカウントを完全に乗っ取ることが可能である。これにより、被害者の権限でデータの閲覧、書き換え、削除などの操作が行われる恐れがある。
対応策
ash_authentication をバージョン 4.14.0 または 5.0.0-rc.10 以降にアップグレードすること。