JVNDB-2026-021622 | |
pgAdmin ProjectのpgAdmin 4における複数の脆弱性 | |
| 概要 | |
pgAdmin 4のクラウド展開モジュールにおけるHTMLインジェクションの脆弱性です。/rds/、/azure/、/google/、およびトップレベルの/cloud/ブループリント配下のverify_credentials、deploy、regions、update-serverエンドポイントでは、AWS / Azure / Google SDKの例外テキストや関連するファイル解決およびデータベースコミットの例外テキストをJSONレスポンスボディ(infoおよびerrormsgフィールド)にHTMLエンコードせずに伝播させていました。Cloud Wizardのフロントエンドはhtml-react-parserを使用してこれらの文字列をレンダリングしていたため、攻撃者が操作した例外メッセージが構造化されたHTMLとしてウィザードのDOMに直接埋め込まれてしまいます。報告された入口ポイントは/rds/verify_credentials/です。認証済みのpgAdminユーザーがアクセスキー値にiframe/src=...のペイロードを含む細工されたアクセスキーを送信すると、AWS STSはIncompleteSignature例外で認証を拒否し、その例外テキストはアクセスキーを逐語的に引用します。pgAdminのバックエンドはそのテキストをJSONのinfoフィールドに転送し、Cloud WizardのFormFooterMessageがそれをHTMLとしてパースします。ブラウザーはiframeのsrcを攻撃者が制御するホストから取得し、iframe内のJavaScriptがparent.locationを書き換えて被害者のpgAdminタブをリダイレクトします。インジェクションがpgAdmin自身のインターフェイス内部でレンダリングされるため、X-Frame-OptionsおよびContent-Security-Policyのframe-ancestorsでは対策できません。影響の基本は自己対象(ペイロードを提供した同一ユーザーがインジェクションを見る)ですが、他の認証済みユーザーへのエスカレーションには、有効なX-pgA-CSRFTokenを被害者のブラウザコンテキストで送信可能なクロスサイトリクエストフォージェリの追加プリミティブが必要です。同様の未消毒のエラーをJSONに直接返すパターンは複数の関連エンドポイントにも存在しました。具体的には、Azureのcheck_cluster_name_availability、SDKエラーを表示するGoogleのすべてのエンドポイント(verification_ack、projects、regions、instance_types、database_versions、verify_credentialsのパス解決ブランチ)、deploy_on_rds、deploy_on_azure、deploy_on_googleからのstr(e)を返す中央の/deployエンドポイント、および失敗したdb.session.commitに起因するstr(e)を返すupdate_cloud_serverが含まれ、これらはすべて修正が適用されました。修正は、新たに共通で使用されるsanitize_external_textヘルパー(HTMLエスケープと制御文字の除去)を用いて、エンドポイントのシンクで外部/SDK例外文字列をHTMLエスケープするもので、このヘルパーはpsycopg3ドライバーからweb/pgadmin/utils/text_sanitize.pyに移行されました。さらにCloud Wizardのフロントエンドは、バックエンド由来の文字列に対してFormFooterMessageをプレーンテキストモードでレンダリングするため、将来もしエスケープを忘れた場合でもHTMLとしてパースされることはありません。この問題はpgAdmin 4バージョン6.6から9.16未満に影響します。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.4 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
pgAdmin Project | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報の一部が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
|
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/19 |
| 登録日 | 2026/06/30 |
| 最終更新日 | 2026/06/30 |



