この記事のポイント
- 脆弱性
- CVE-2026-116238
CVE-2026-116239
CVE-2026-116240
CVE-2026-116241
CVE-2026-116242
CVE-2026-116243
CVE-2026-116244
CVE-2026-116245
CVE-2026-116246
CVE-2026-116247
CVE-2026-116248
CVE-2026-116249
CVE-2026-116250
CVE-2026-116251
CVE-2026-116252 - 深刻度
CRITICAL9.9
- 対象
- pgAdmin 4 9.19未満(主題CVEの影響範囲)
- 悪用状況
- 不明
- 推奨対応
- 9.19へ更新。初回起動前にパスワード取得コマンドと接続サービスの許可リストを確認し、更新後は過去の共有設定、接続資格情報、セッション失効を監査する。
- 公表日
目次
PostgreSQLの管理ツールpgAdmin 4で、OSコマンド実行、認証先アカウントの取り違え、利用者間の資格情報の混線など15件のが修正されました。対象の利用者はpgAdmin 4の9.19へ更新し、複数人で共有するサーバーモードでは、最初の起動前にパスワード取得コマンドと接続サービスの許可設定を確認してください。更新だけでは過去の不適切な共有設定まで解除されません。
9.19のリリース日は2026年10月29日です。PostgreSQLサイトへの発表掲載は10月31日で、同じ日付ではありません。本記事は11月2日にpgAdmin公式リリースノートと現行設定資料を確認した修正ニュースです。以下の更新・監査の順序は本サイトの提案であり、攻撃を実行した検証結果ではありません。
スポンサーリンク
DB本体ではなく管理ツール側の権限境界を更新する
今回の更新対象はpgAdmin 4です。PostgreSQLサーバー本体を更新しても、別ホストやコンテナで動くpgAdminが旧版のままなら対応にはなりません。管理画面の配置、導入元、実行版、サーバーモードかデスクトップモードか、利用者数、認証方式を先に記録します。
特に共有環境では、pgAdmin利用者、接続先DBのロール、pgAdminを動かすOSアカウントが別の主体です。DBで低い権限しか持たない利用者でも、管理ツールがOS側の鍵や接続情報を代わりに使うと、想定外の資産へ到達する可能性があります。今回の修正は、この三つの境界をまたぐ問題を複数含みます。
Import/Export Dataのコマンド実行は過去の修正を回避する経路
-2026-116241は、Import/Export Dataのクエリ書き出しでOSコマンドが実行される問題です。pgAdminは利用者のクエリをpsqlのコマンドへ組み込み、括弧の対応を検査していました。しかし、二重引用符で囲んだ識別子内のバックスラッシュについて、pgAdminとpsqlで解釈がずれる条件がありました。
standard_conforming_stringsがoffのとき、事前検査が認識した引用の終わりとpsql側の認識が一致せず、TO PROGRAMが有効な句として扱われ、pgAdminホスト上でコマンド実行につながります。公式はCVE-2026-17566への不完全な修正の回避と説明しています。以前の対策済みという記録だけで、今回を対象外にしないでください。
9.19では、二重引用符の識別子内のバックスラッシュを拒否し、インポート・エクスポートの名、表名、列名に含まれるバックスラッシュやヌル文字も拒否します。公式CVEレコードによる対象は9.19未満で、Import/Export Data権限を持つ済み利用者と通常のDBロールが条件です。この権限は既定で非管理者にも付与されます。主題CVEの 3.1は9.9(Critical)で、15件全体へ一律に当てはめる値ではありません。一般のSQLエラーで処理が失敗したように見えても、OS側の処理が先に起きる可能性があるため、DBのエラーログだけを安全の根拠にはできません。
スポンサーリンク
15件は認証・資格情報・ファイル・セッションへ分けて点検する
| 分類 | 主なCVE | 運用上の確認 |
|---|---|---|
| 認証先とログイン制限 | 116238・116239 | 認証元の異なる同名アカウントと失敗回数の扱い |
| コマンドとファイル | 116240・116241・116243・116249・116250 | 保存先、実行バイナリー、リンク、利用者間のパス境界 |
| の資格情報 | 116242・116244〜116247 | 、Kerberos、libpqの暗黙の資格情報利用 |
| 共有・・接続先 | 116248・116251・116252 | 過去の共有設定、他セッション失効、DB名の解釈 |
表の番号はすべてCVE-2026-の後半です。やKerberosで認証した利用者を、同じユーザー名を持つInternalアカウントとしてログインさせる問題には、初期管理者への取り違えも含まれます。更新後は認証された名前と認証元の両方でアカウントを選びます。同名Internalアカウントを使う挙動に依存していた利用者は、正しい認証元のアカウントを用意する必要があります。
CVE-2026-116251では、パスワード変更や管理者リセット後も他のセッションが残る問題を修正しました。本人による変更では他セッションを終了し、変更中のセッションは維持します。管理者によるリセットは対象者の全セッションを終了します。保存済み接続パスワードの再暗号化・消去の挙動も変わるため、ログインできることだけで移行成功とは判定しません。
最初の起動前にPassword Exec Commandを棚卸しする
サーバーモードでは、自由記述のPassword Exec Commandは実行されなくなります。公式Configuration FilesにあるSERVER_PASSEXEC_COMMANDSへ、管理者が名前と実行ファイル・引数のリストを定義し、利用者はその名前を選ぶ方式です。ENABLE_SERVER_PASS_EXEC_CMDは非推奨となり、指定しても無視されます。
既存コマンドの移行は、許可リストの引数を単一の空白で連結した文字列との完全一致で決まります。一致すれば名前へ変換され、それ以外は消去されます。この消去は元に戻せません。設定が空のままなら、既存値は使われずに残り、警告を出して変換を延期します。最初に一件以上を設定した起動時に変換・消去が進む点を見落とさないでください。
更新前には、既存コマンド、利用する共有サーバー、所有者、生成する資格情報の用途を記録し、設定DBと設定ファイルの復旧点を確保します。シェル展開や%HOSTNAME%などの置換に依存するコマンドは、そのまま同じ動作になりません。新方式はシェルを介さず直接実行し、渡されるも限定されます。
許可したコマンドには接続先やDBユーザー名も渡りますが、それらはサーバー定義を編集する人が指定できます。公式Server Dialogは、資格情報を発行してよいかの判断にPGADMIN_PASSEXEC_PGADMIN_USERとPGADMIN_PASSEXEC_AUTH_SOURCEを使い、接続先の値を信頼しないよう求めています。許可リストへ載せるだけで、コマンド内部のが不要になるわけではありません。
スポンサーリンク
接続が切れたら資格情報の暗黙利用を戻さず明示する
9.19のサーバーモードでは、libpqがpgAdminのOSアカウントにあるパスワードファイルやクライアントへする経路、SSHのホームディレクトリやagentを使う経路を止めます。更新後に特定の接続やトンネルだけ失敗した場合は、旧挙動を復活させる前に、利用者自身の保存領域へ適切なファイルを置き、サーバー定義で明示してください。
接続サービス名はSERVER_MODE_ALLOWED_SERVICESへ管理者が許可したものだけ使えます。空の既定値ではサービスを許可しません。ここへ登録すると、そのサービスの資格情報をすべてのpgAdmin利用者が使えるため、接続復旧のために一覧を丸ごと許可するのは危険です。全員に共有してよいサービスかを一件ずつ確認します。
ユーザー保存領域の外へ出る相対パスやシンボリックリンクも接続失敗の原因になります。SHARED_STORAGEを使う場合でも、全員が使える領域へや.pgpassを移すことを一般的な解決策にしないでください。公式Server Dialogは、共有するならルート証明書やCRLなど共有可能なファイルを例に挙げています。
更新後も残る共有設定と修正範囲の限界を確認する
CVE-2026-116248の修正は、一般利用者による新たな全員共有を拒否しますが、更新前に作られた共有サーバーを自動解除しません。起動時の警告と設定DBの所有者・sharedフラグを照合し、意図しないものは所有者または管理者の正規の手順で解除します。画面のSharedスイッチが管理者だけに見えることと、過去の設定が消えたことは別です。
ファイルのリンク競合対策にも適用範囲があります。リリースノートは、POSIXのサーバーモードでのリンク追跡防止、でユーティリティへファイル記述子を渡す対策を説明する一方、Windows、デスクトップモード、ディレクトリ形式のBackup/Restoreなどには同じ保護が及ばない部分を明記しています。9.19だから全OS・全ファイル経路が同じ保証を持つとは扱わないでください。
Kerberosでは、pgAdminと補助ユーティリティが使うlibpq 16以降のrequire_authも確認します。古いlibpqではSSPIやgssproxyを止め切れない範囲があるためです。アプリ本体の版と、別途指定したpsql・用バイナリーの版を分けて記録すると、更新漏れを追跡できます。
公開再開の判定を管理者と一般利用者の両方で行う
本サイトが提案する確認順は、更新前の設定とログの保全、許可リスト整備、非本番での起動、9.19への更新、接続と権限の確認です。管理者だけでなく一般利用者でも、正しい認証元でログインすること、他人のサーバーや資格情報を使えないこと、必要なインポート・エクスポートとSSH接続が動くことを確認します。
利用者AとBの試験用アカウントを使い、共有する接続と個人の接続を分けて正常系を確認してください。パスワード変更後は別ブラウザーの旧セッション、管理者リセット後は対象者の全セッションが終了するかを点検します。保存パスワードが再入力を求められる場合もあるため、利用者への案内と復旧担当を先に決めておきます。
今回読んだ公式資料には実環境での悪用確認の記載はありません。ただし、記載がないことを悪用なしの証拠にはしません。不審なエクスポート、予期しない子プロセス、共有設定変更、接続先変更があれば、修正版の適用と侵害調査を別の作業として進めます。調査対象や確認記録の残し方は、既存の緊急パッチの実務ランブックも参考にできます。
CVE Program:CVE-2026-116241の公式レコードでは、公表日を10月29日、レコード登録を10月30日として区別しています。
出典・一次情報
本記事は以下の公開情報をもとに作成しています。最新の状況は各リンク先で確認してください。
-
CVE
-
公式アドバイザリ
-
公式アドバイザリ
-
公式アドバイザリ













