つみかさね

CVE-2026-12045

Critical(9)

pgAdmin 4のAIアシスタントSQLインジェクション CVE-2026-12045:影響範囲と対応方法

公開日: 2026-07-03データソース: NVD, GitHub Advisory

影響を受けるソフトウェア

製品ベンダー影響バージョン
pgAdmin 4pgAdmin Development Team9.13 〜 9.15

対応ガイド

high|対応必須セキュリティ修正影響: 広範

推奨アクション

  1. 1pgAdmin 4 のバージョンが 9.13〜9.15 かどうか確認する
  2. 2pgAdmin 4 9.16へアップグレードする
  3. 3アップグレードが困難な場合はAI Assistant(pgai)機能を無効化する
  4. 4接続するPostgreSQLロールをスーパーユーザー以外の最小権限ロールにする

影響対象

pgAdmin 4 9.13〜9.15 サーバーモード利用者、特にAI Assistant有効環境

補足

  • -AI Assistantを完全に無効化することで影響を緩和できますが、根本解決はアップグレードです
  • -PostgreSQLスーパーユーザーロールを使用している場合はOS RCEまでのチェーンが成立しうるため優先度を上げてください
CVEpgAdminSQLインジェクションプロンプトインジェクションRCE

30秒で判断

対応すべき人:

  • pgAdmin 4 バージョン 9.13〜9.15 をサーバーモードで使用している
  • AI Assistantが有効な環境で稼働させている

対応不要な人:

  • pgAdmin 4 9.16以降にアップグレード済み
  • pgAdmin 4 を使用していない
  • デスクトップモードのみで使用しており、AI Assistantが外部からアクセスされない環境
  • AI Assistant機能(pgai)が無効または未設定

確認コマンド:

# バージョン確認(インストール方法による)
pip show pgadmin4 | grep Version
# または pip3 show pgadmin4

概要

pgAdmin 4 のAI Assistant(pgai)が内部で使用する execute_sql_query ツールにおいて、SQLインジェクションが可能な脆弱性です。

AI Assistantは生成したSQLを BEGIN TRANSACTION READ ONLY ... ROLLBACK ラッパーで囲んで実行することで、データ変更を防ぐ設計になっています。しかし、ラッパー内に COMMITENDROLLBACKABORT といったトランザクション制御キーワードを含む複数ステートメントを注入すると、読み取り専用トランザクションを途中で終了させ、後続のステートメントを通常モードで実行できます。

攻撃者がデータベース内のAI Assistantが参照しうる任意のオブジェクト(行データ、カラム値、コメント等)に悪意あるペイロードを書き込んでいる場合、LLMがそれを処理してSQLとして出力させることができます(プロンプトインジェクション)。接続しているPostgreSQLロールがスーパーユーザーや pg_execute_server_program 権限を持つ場合、COPY ... TO PROGRAM 等を通じてデータベースサーバーホスト上でのOS コマンド実行まで繋がる可能性があります。

修正版(9.16)では、LLMが生成したSQLを事前にパースし、先頭の実トークンが SELECTWITHEXPLAINSHOWVALUESTABLE のいずれかのみを受け入れる検証が追加されています。


CVSSベクトル

項目
CVSSスコア9.0(Critical)
CWECWE-77(コマンドインジェクション)、CWE-89(SQLインジェクション)
攻撃元区分 (AV)ネットワーク (N)
攻撃条件の複雑さ (AC)低 (L)
必要な特権 (PR)低 (L)(pgAdminへの認証必要)
ユーザーの関与 (UI)不要 (N)
スコープ (S)変更 (C)
機密性への影響 (C)高 (H)
完全性への影響 (I)高 (H)
可用性への影響 (A)高 (H)

影響を受けるソフトウェア

製品影響バージョン
pgAdmin 49.13 〜 9.15

修正バージョンと回避策

修正バージョン: pgAdmin 4 9.16

アップグレード手順(pip経由):

pip install --upgrade pgadmin4
# または
pip3 install --upgrade pgadmin4

回避策(アップグレードが困難な場合):

  • AI Assistant(pgai)機能を無効化する
  • pgAdmin 4のアクセスを信頼できるネットワーク・ユーザーのみに制限する
  • 接続するPostgreSQLロールの権限を最小限にする(スーパーユーザーロールを使用しない)

関連リンク


データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。

Xでシェアはてブ
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database, JVN iPedia (IPA/JPCERT/CC)
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。