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値]
| |
| 影響を受けるシステム | |
|
| |
pgAdmin Project | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報の一部が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
|
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/19 |
| 登録日 | 2026/06/30 |
| 最終更新日 | 2026/06/30 |



