CVE-2026-116239 in pgAdmin
要約
〜によって VulDB • 2026年10月30日
pgAdmin 4のサーバーモードでは、認証ソースごとにアカウントが保持されるため、同じユーザー名が内部アカウントとLDAPアカウントなどの複数の形式で存在する可能性があります。LDAPまたはKerberosによるユーザー認証後、pgAdminはユーザー名のみの一致に基づいてログイン対象のアカウントを選択するか、Flask-Securityのログインフォームによって検索されたアカウントを採用しますが、そのアカウントが実際にユーザーを認証したソースに属しているかどうかを確認しません。そのため、セッションは別のアカウント(異なるロール、サーバー、保存済みデータベースパスワードを持つ)のものになってしまいます:
- ユーザー名が内部アカウントと一致するLDAPまたはKerberosのユーザーは、pgAdminの初期セットアップ時に作成された管理者アカウントを含む、その内部アカウントとしてログインされます。 - AUTHENTICATION_SOURCES設定で内部認証がLDAPやKerberosより前に指定されている場合、ログインフォームによる内部検証では入力されたメールアドレスに対応するアカウントが検索され、パスワードが一致しなくてもそのアカウントが保持されます。これにより、Kerberosユーザーは他のKerberosユーザーのプリンシパルを入力して当該ユーザーとしてログインでき、LDAPユーザーも同様に、自身のユーザー名と一致するメールを持つLDAPアカウントに対して同じことが可能です。
攻撃には、pgAdminの設定で使用されているLDAPディレクトリまたはKerberosレルムの有効な資格情報が必要です。
修正では、認証されたユーザー名およびそのユーザーを認証したソースに基づいてアカウントを検索し、内部認証以外のソースについてはログインフォームが見つけたアカウントを使用しないようになりました。内部認証は、対象のアカウントが内部アカウントである場合にのみログインを許可します。デスクトップモードには影響ありません。
本問題はpgAdmin 4(バージョン9.19より前)に影響します。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.