pgAdmin 4 Vulnerabilities Expose Databases to Remote Code Execution and XSS
2025/04/07 SecurityOnline — 広く利用されている PostgreSQL 管理ツール pgAdmin 4 だが、データベース環境に大きなリスクをもたらす、2つの深刻なセキュリティ脆弱性に対処したところである。最新リリースである、pgAdmin 4 のバージョン 9.2 では、リモート・コード実行 (RCE) 攻撃やクロスサイト・スクリプティング (XSS) 攻撃を許す可能性のある、深刻な欠陥が修正されている。したがって、ユーザーは、速やかにアップデートすべきである。

CVE-2025-2945:リモート・コード実行への入口
1つ目の脆弱性 CVE-2025-2945 (CVSS:9.9) は、きわめて深刻なものである。この脆弱性により、クエリ・ツールとクラウド・デプロイメント・モジュールを使用する pgAdmin 4 ユーザーは、潜在的なリモート・コード実行にさらされる。この問題の原因は、2つの POST エンドポイントである “/sqleditor/query_tool/download” と “/cloud/deploy” における、ユーザーが指定するパラメータに対する安全な処理の欠如にある。

具体的に言うと、query_commited /high_availability パラメータが、適切なサニタイズをバイパスするかたちで、Python の eval() 関数にダイレクトに渡されていた。この見落としを悪用する攻撃者は、サーバに任意のコードを挿入/実行できるようになり、システムの完全な侵害にいたるとされる。
技術的な詳細と PoC は、ココで参照できる。
CVE-2025-2946: 悪意のクエリ結果から XSS 攻撃へ
前述の RCE の欠陥に加えて、pgAdmin 4 バージョン 9.1 以下には、クロスサイト・スクリプティング (XSS) 攻撃の脆弱性 CVE-2025-2946 (CVSS:9.1) が存在する。この脆弱性が発生する原因は、クエリ結果を適切にサニタイズできないアプリケーションにあり、ユーザーのブラウザ内での任意の HTML/JavaScript 実行を許すことになる。
したがって、ユーザーがデータを取得するクエリを実行すると、pgAdmin 4 はエスケープ/サニタイズすることなく、悪意の JavaScript ペイロードを取り込んだスクリプトの結果をレンダリングしてしまう。それにより、ブラウザ内で悪意のあるコードが即座に実行され、機密情報の窃取/ユーザー・セッションの操作などの悪意のあるアクションを、攻撃者は実行する機会を得る。
この XSS 脆弱性は、次の手順で悪用される:
- pgAdmin 4 を使用してデータベース・インスタンスに接続する。
- クエリ・ツールを開く。
- 以下の SQL コマンドを実行する:
CREATE TABLE IF NOT EXISTS EXAMPLE (TEXT_SAMPLE VARCHAR(255)); INSERT INTO EXAMPLE (TEXT_SAMPLE) VALUES ('<img src=a onerror=alert(Payload_here)>'); SELECT * FROM EXAMPLE;
SELECT ステートメントを実行すると、エンベッドされた JavaScript が、ダイレクトに実行されることを示す警告ボックスが表示される。それが浮き彫りにするのは、クエリ結果に対する適切なサニタイズが、きわめて重要であるという現実である。
緩和策とベスト・プラクティス:
これらの脆弱性を緩和するユーザーは、以下の事柄を実施する必要がある。
- pgAdmin 4 バージョン 9.2 以降へと、速やかにアップグレードする。このバージョンには、CVE-2025-2945/CVE-2025-2946 に対処するパッチが取り込まれている。
- 堅牢な入力検証およびサニタイズ・ラクティスを実装する。開発者にとって必要なことは、ユーザーが入力する全データが、処理/表示の前に、適切にサニタイズ/検証されていることの確認である。
- eval() などの動的コード実行関数の使用を、最小限に抑える。可能であれば、このような関数の使用は避けてほしい。どうしても必要な場合には、入力が厳密に制御/検証されていることを確認してほしい。
- XSS 攻撃のリスクについて、ユーザーに教育する。ユーザーが認識すべきことは、クエリ結果に悪意のコードが埋め込まれる可能性である。したがって、データベース・データを操作する際には、注意が必要となる。
- 定期的なセキュリティ監査と、侵入テストを実施する。これらの対策は、攻撃者に脆弱性を悪用される前に、潜在的なリスクを特定して対処するのに役立つ。
pgAdmin 4 の脆弱性が FIX しました。どちらも CVSS 値が 9.0 以上と評価されており、悪用されるとシステムの乗っ取りや機密情報の窃取にいたる恐れのある、深刻なものです。ご利用のチームは、迅速なアップグレードと緩和策の実施を、ご検討ください。よろしければ、pgAdmin で検索も、ご参照下さい。

You must be logged in to post a comment.