【活用ガイド】

JVNDB-2026-021621

pgAdmin ProjectのpgAdmin 4における複数の脆弱性

概要

pgAdmin 4のエラーレンダリングおよびプランノードレンダリング経路にクロスサイトスクリプティングの脆弱性があります。PostgreSQLサーバーから返されるテキスト(ErrorResponseメッセージ、リレーションが存在しないエラー内のオブジェクト名引用や、EXPLAINのRecheck Cond / Exact Heap Blocksフィールド内のテキストなど)は、html-react-parserを通じてユーザーに表示される全ての場所(通知トースト、FormFooterMessage / FormInputのヘルプおよびエラー領域、FormNote、ModalProviderのAlertContentおよびconfirmDelete、ToolErrorView、ExplainビジュアライザーのNodeTextパネル、SQLエディタの確認ダイアログ、ConfirmSaveContent、PreferencesHelperのモーダルアラート、およびSelectThemesのヘルパーテキスト)にそのまま渡されていました。攻撃者が制御するPostgreSQLサーバーや、低権限のデータベースユーザーが作成可能なテーブル名やカラム名など、攻撃者が操作したテキストを返す任意のサーバーは、被害者のpgAdminがそのサーバーに接続した瞬間や、細工されたオブジェクトを参照するExplainプランを閲覧した時点で、任意のHTML(iframeを含む)をpgAdminのDOMに注入できました。注入されたiframeのsrcdocは攻撃者が提供するJavaScriptを取得でき、parent.locationを書き換えることで被害者のトップレベルのpgAdminブラウザタブを攻撃者制御のURLにリダイレクト可能です。この注入はpgAdminの自前のインターフェース内から発生するため、標準的なアンチクリックジャッキング制御(X-Frame-Options、Content-Security-Policyのframe-ancestors)ではこの問題を緩和できません。正当なpgAdminウィンドウ内に表示されるフィッシングページは、本物のpgAdminダイアログと区別がつきません。対応策は3つの補完的な層で構成されています。 (1) notifier、alert、form-error、Explain、およびSQLエディタのフローから到達可能なhtml-react-parserの呼び出し箇所すべてに対してDOMPurifyによるサニタイズ処理を適用しました。 (2) 新たにプレーンテキストレンダリング契約(SafeMessage / SafeHtmlMessageコンポーネントおよびNotifier.errorText / alertText / warningText / infoText / successTextヘルパー)を導入し、ブラウザ、ツール、ダッシュボード、デバッガー、ミスク、llm、設定、スキーマ差分、SQLエディタで以前はバックエンド由来の文字列を補間していた約50箇所の呼び出しをプレーンテキストバリアントに移行しました。 (3) バックエンド側でもexecute_post_connection_sqlハンドラーでsanitize_external_textヘルパーを通じてHTMLエスケープを実施し、サードパーティのJSONコンシューマ(監査ログ、APIクライアント)に生のマークアップを送信しないように対応しました。Explainプラン情報のレンダー部にはRecheck CondとExact Heap Blocksも_.escapeで保護し(すべての関連フィールドに対応)、DOMPurify実行前からの多層防御を実現しています。この問題はpgAdmin 4のバージョン6.0から9.16未満に影響します。
CVSS による深刻度 (CVSS とは?)

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


pgAdmin Project
  • pgAdmin 4 6.0 以上 9.16 未満

想定される影響

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

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
ベンダ情報

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

  1. 不適切なエンコード、または出力のエスケープ(CWE-116) [その他]
  2. クロスサイトスクリプティング(CWE-79) [その他]
  3. クロスサイトスクリプティング(CWE-79) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-12048
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-12048
  2. 関連文書 : Stored XSS via PostgreSQL server error messages and Explain plan nodes (CVE-2026-12048)  Issue #10068  pgadmin-org/pgadmin4
  3. 関連文書 : fix(xss): comprehensive XSS hardening across notification and Explain…  pgadmin-org/pgadmin4@9e370d3  GitHub
更新履歴

  • [2026年06月30日]
      掲載