JVNDB-2026-022111 | |
pgAdmin ProjectのpgAdmin 4における複数の脆弱性 | |
| 概要 | |
pgAdmin 4のSQLエディタブループリント内にある2つの状態変更エンドポイント、DELETE /sqleditor/close/<trans_id> および POST /sqleditor/initialize/sqleditor/update_connection/<sgid>/<sid>/<did> は、このモジュール内の他のルートがすべて持つ@pga_login_requiredデコレーターを欠いている唯一のルートでした。両者は共に session['gridData'][<trans_id>]['command_obj'] のpickle.loadsシンクに到達します。closeエンドポイントは close_sqleditor_session() を経由し、update_sqleditor_connectionは check_transaction_status() を経由します。サーバーモードでは、これらのエンドポイントは認証されたpgAdminセッションなしでアクセス可能でした。この欠陥は、信頼されていないデータの逆シリアル化シンク(CWE-502)に対する重要な関数の認証ラッパー(CWE-306)が欠如していることに起因します。リモートコード実行の悪用には、攻撃者がgridDataエントリに悪意のあるpickleペイロードを含むサーバー側セッションファイルを偽造する必要があり、これには(a) pgAdminのFlask SECRET_KEYの知識(ここではそれを漏洩させるチェーンは説明していないため、攻撃者はすでにそれを所有している必要があります)および(b) ホスト上のpgAdminのsessions/ディレクトリへの書き込み権限が必要です。この欠陥単体ではこれらの前提条件は与えられません。これらの前提条件(設定ミス、既存の侵害、設定情報の漏洩など)が別の経路で満たされると、この認証の欠落が既存の部分的侵害を未認証コード実行へと変える最終段階となり、結果としてpgAdminプロセスおよびpgAdminを実行するアカウントがホスト権限を取得します。修正は、2つのエンドポイント双方に@pga_login_requiredデコレーターを1行追加し、モジュール内の他ルートの慣例に合わせることです。認証済みかどうか(is_authenticated)および多要素認証(MFA)の確認は、trans_idの参照より前に実行され、未認証のリクエストは逆シリアル化パスに到達する前に拒否されます。この欠陥はサーバーモードのみで発生します。DESKTOPモードでは、pgAdminのbefore_requestフックが全リクエストでDESKTOP_USERを再認証するため、いかなるエンドポイントも未認証状態で実行されず、認証デコレーターの有無に関係がありません。付随するリグレッションテストは攻撃者の経路を模倣し、GET /loginからX-pgA-CSRFTokenを取得して両エンドポイントにリプレイしますが、サーバーモード以外ではテストはスキップされます。テストは既存のサーバーモードCIワークフローにデータ分離テストとともに組み込まれています。本問題はpgAdmin 4のバージョン6.9から9.16未満に影響します。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 9.0 (緊急) [その他]
| |
| 影響を受けるシステム | |
|
| |
pgAdmin Project | |
本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。 | |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
ベンダ情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
GitHub | |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
|
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/19 |
| 登録日 | 2026/07/03 |
| 最終更新日 | 2026/07/03 |



