【活用ガイド】

JVNDB-2026-027063

pgAdmin ProjectのpgAdmin 4における認証の欠如に関する脆弱性

概要

ツールごとの権限システム(カスタムロール/ロールベースのツール権限、pgAdmin 4 バージョン9.3で導入)は、権限チェックを一貫して適用していませんでした。SERVERモードでは、pgAdmin 4は各ツールをツールごとのFlask-Security権限の背後に配置していますが、権限デコレータ(permissions_required)はツールごとに1つの「フロントドア」ルートのみに適用されており、ツールのワークフロー内の他のバックエンドルートやSocket.IOハンドラは認証のみをチェックするpga_login_required/socket_login_requiredに依存していて、ツール権限を確認していませんでした。報告者はテストビルドに対し、以下の3つのケースを検証しました。1) tools_query_tool権限を持たないユーザーは、保護されたsqleditorの初期化ルートで403エラーを受けましたが、同じセッションはサーバーへ接続してviewdataのバックエンドチェーンを初期化し、実際のテーブルの行内容を取得しました。2) tools_grant_wizard権限を持たないユーザーは、保護されたACLルートで403エラーを受けましたが、同じセッションは付与可能なオブジェクトを列挙し、GRANT SQLを生成して正常に適用しました(データベース側でhas_table_privilege()により確認)。3) tools_schema_diff権限を持たないユーザーは、保護されたパネルルートで403エラーを受けましたが、同じセッションはスキーマ差分を初期化し、データベースを列挙・接続し、compare_database Socket.IOハンドラを介して実際のDDL差分を取得しました。さらに関連する別の問題として、所有者以外のユーザーがadministratorが所有する共有サーバーに対して/misc/workspace/adhoc_connect_serverを起動した場合、接続試行自体は失敗と報告されるものの、pgAdminが新しいサーバー行を永続化し、所有者は管理者のまま(user_id/共有はソースから変更なし)残る挙動も確認されました。修正作業中には、同じフロントドアのみの権限ギャップがERD/PSQL/Debuggerツールおよびバックアップ/復元/メンテナンス/インポート/エクスポートのブループリントにも影響していることが判明しましたが、これらは元の報告には含まれておらず、報告された欠陥クラスの拡張として同じパターンで修正されました。認証済みでpgAdminにログインし、保存済みの動作するデータベース接続を持つが、特定のツール権限を管理者によって明示的に拒否されているユーザーは、他のルートやSocket.IOを介してそのツールを端から端まで操作でき、/pty Socket.IO名前空間経由で対話型のpsqlセッションを取得したり、バックアップ/復元/メンテナンス/インポート・エクスポートのジョブを実行できました。回避策は、すでに認証済みの自分のデータベース接続を介してツールへアクセスする権利を回復するだけであり、未所持のデータベース権限を与えるものではありません。この結果、pgAdminのツールレベルのアクセス制御ポリシー(データベースレベルの認可とは別の組織的な職務分離管理)を回避し、管理者が与えないことを意図したpgAdminの機能へ、既存のデータベースロールが他の手段で既に許可している能力を用いてアクセスさせてしまいます。Socket.IOのイベントハンドラにはpermissions_requiredに相当する権限認識の実装がなく、socket_login_requiredのみが認証をチェックし、ツール権限は確認していませんでした。対策として、socket_permissions_requiredデコレータを追加し(permissions_requiredを模倣し、管理者のバイパスを尊重し、has_permission()で権限を読み取る)、影響を受けたツールのすべてのバックエンドルートおよびSocket.IOハンドラの最外側デコレータとしてpermissions_requiredとともに適用します。回帰テストでは、権限のないユーザーに対してすべてのゲート付きルートおよびsocketハンドラで403を返すことを検証します。なお、この問題はpgAdmin 4のSERVERモードに影響し、バージョン9.3以降9.17未満で確認されています。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 5.4 (警告) [その他]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 低
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): 低
  • 完全性への影響(I): 低
  • 可用性への影響(A): なし
影響を受けるシステム


pgAdmin Project
  • pgAdmin 4 9.3 以上 9.17 未満

本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。
想定される影響

・当該ソフトウェアが扱う情報の一部が外部に漏れる可能性があります。
・当該ソフトウェアが扱う情報の一部が書き換えられる可能性があります。
・当該ソフトウェアは停止しません。
対策

ベンダ情報を参照して適切な対策を実施してください。
ベンダ情報

GitHub
CWEによる脆弱性タイプ一覧  CWEとは?

  1. 認証の欠如(CWE-862) [その他]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-17350
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-17350
  2. 関連文書 : fix: close remaining tool-RBAC gaps found in review  pgadmin-org/pgadmin4@64a9cdb  GitHub
  3. 関連文書 : Add RBAC regression tests for tool routes, sockets and adhoc ownership  pgadmin-org/pgadmin4@ba19847  GitHub
  4. 関連文書 : Enforce tool RBAC on every backend route, not just the entry point  pgadmin-org/pgadmin4@d36bd8d  GitHub
  5. 関連文書 : Add socket_permissions_required decorator for Socket.IO RBAC  pgadmin-org/pgadmin4@461c3af  GitHub
更新履歴

  • [2026年08月06日]
      掲載