ユーザー名が52文字以上だと「パスワードなしでログインできる」欠陥が3カ月間も存在していたことをOktaが公表
IDやパスワードなどのユーザアカウントを一元管理するシステムを手がけるOktaが、「ユーザー名が52文字以上だとパスワードによる認証を回避できる脆弱(ぜいじゃく)性」が2024年7月23日から約3カ月間にわたって存在していたと発表しました。
Okta AD/LDAP Delegated Authentication - Username Above 52 Characters Security Advisory
Oktaは2024年11月1日に、同社の委任認証システムである「Okta AD/LDAP DelAuth」に、正しいパスワードを入力しなくてもアカウントにログインできる脆弱性があったと報告しました。
Oktaのセキュリティ勧告によると、ユーザー名が52文字以上で、過去にそのユーザーが認証に成功した履歴がある場合、保存されたキャッシュキーを使用して認証できてしまうとのこと。
AD/LDAP DelAuthのキャッシュキーの生成にはBcryptというアルゴリズムが使われていましたが、このアルゴリズムでは「userId+username+password」を組み合わせた文字列をハッシュ化してキャッシュキーを生成します。
これにより、AD/LDAPエージェントがダウンしていたりトラフィックが多すぎたりした場合、ユーザーは保存されたキャッシュキーを使用して認証できる可能性があったとのことです。
多要素認証(MFA)が使われている場合はこの問題を回避できましたが、不具合は2024年7月23日から10月30日までシステムに存在し続けました。
Oktaは10月30日にこの脆弱性を発見し、同日暗号アルゴリズムをBcryptからPBKDF2に切り替えることで問題に対処しました。
Oktaは顧客に対し、「2024年7月23日から10月30日までの期間、52文字を超えるユーザー名による予期しない認証があるかどうか、システムログを調査する必要があります」と述べるとともに、多要素認証の設定やフィッシング耐性のある認証システムの使用を推奨しました。