つみかさね

CVE-2026-12044

High(8.8)

pgAdmin 4のSQLインジェクション CVE-2026-12044:影響範囲と対応方法

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

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

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

対応ガイド

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

推奨アクション

  1. 1pgAdmin 4のバージョンが 1.0〜9.15 かどうか確認する
  2. 2pgAdmin 4 9.16へアップグレードする

影響対象

pgAdmin 4 1.0〜9.15 利用者

補足

  • -このCVEは認証済みユーザーによる悪用が前提です。外部公開環境では優先度を上げてください
  • -CVE-2026-12045およびCVE-2026-12046と同一の修正版(9.16)で対処できます
CVEpgAdminSQLインジェクションJinja2PostgreSQL

30秒で判断

対応すべき人:

  • pgAdmin 4 バージョン 1.0〜9.15 を使用している認証済みユーザー
  • Domain、Foreign Table、Language、Event Trigger等のオブジェクトを管理している

対応不要な人:

  • pgAdmin 4 9.16以降にアップグレード済み
  • pgAdmin 4 を使用していない

確認コマンド:

pip show pgadmin4 | grep Version

概要

pgAdmin 4 の複数のJinja2テンプレートにおいて、ユーザーが入力する description(説明)フィールドが {{ data.description }} として直接SQL文字列に展開され、シングルクォートのエスケープ(qtLiteral フィルター)が適用されていなかった問題です。

コードウィアーの監査では16箇所の同一パターンが発見されました。対象テンプレート: Domain(およびその制約)、Foreign Table、Language、Event Trigger、Views OIDルックアップクエリなど。

影響範囲としては、接続PostgreSQLロールが持つ権限の範囲内での任意SQL実行となります。この脆弱性単独で直接的な権限昇格は発生しませんが、スーパーユーザーロールを使用している環境では COPY ... TO PROGRAM 等を通じたOSコマンド実行まで繋がる可能性があります。

修正は {{ data.description }}{{ data.description|qtLiteral(conn) }} に置き換える形です。また、qtLiteral 関数自体も conn 引数がない場合に生の値を返していた問題が修正され、ValueError を送出するように変更されました。


CVSSベクトル

項目
CVSSスコア8.8(High)
CWECWE-89(SQLインジェクション)、CWE-116(エンコード/エスケープ不備)
攻撃元区分 (AV)ネットワーク (N)
必要な特権 (PR)低 (L)(pgAdmin認証必要)
ユーザーの関与 (UI)不要 (N)

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

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

修正バージョンと回避策

修正バージョン: pgAdmin 4 9.16

pip install --upgrade pgadmin4

回避策:

  • pgAdmin 4へのアクセスを信頼できるユーザーのみに制限する
  • 接続PostgreSQLロールのDDL権限を最小限にする

関連リンク


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

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