速報

プレステージで最大約550万件の情報持ち出し|ロードサービスは代替運用で継続

CATEGORY

pgAdmin 4の9.19でコマンド実行を修正|更新前の許可リストと共有設定を点検

※本ページのリンクにはプロモーションが含まれています。

利用者ごとの資格情報を分離しデータベース管理ツールの更新前設定を確認する概念イラスト

この記事のポイント

脆弱性
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日として区別しています。

出典・一次情報

本記事は以下の公開情報をもとに作成しています。最新の状況は各リンク先で確認してください。

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

あわせて確認したい対策・解説

ほかの脆弱性

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク

バックアップ

データの複製を別の場所に保存しておくこと。故障や誤操作、攻撃でデータを失ったときに元に戻すために使う。

詳しく見る

Linux

オープンソースのOS(カーネル)。Webサーバーやクラウド、コンテナで広く使われ、用途に合わせた多くのディストリビューションがある。

詳しく見る

秘密鍵

公開鍵暗号で、持ち主だけが厳重に保管する鍵。署名や、公開鍵で暗号化されたデータの復号に使う。

詳しく見る

フォールバック

本来の方法が使えないときに、代わりの方法に切り替えて動作を続けること。また、その代わりの方法。

詳しく見る

電子証明書

公開鍵の持ち主が誰かを、認証局が証明する電子的な証明書。HTTPSのサーバー証明書やソフトウェアの署名に使う。

詳しく見る

認可

認証で確認した利用者に、どの情報や機能へのアクセスを許すかを決める仕組み。

詳しく見る

環境変数

OSや実行環境に設定しておき、プログラムから読み取って使う値。環境ごとの設定や秘密の値を渡すのに使う。

詳しく見る

LDAP

組織の利用者やグループ、機器などの情報を管理するディレクトリサービスにアクセスするための仕組み(プロトコル)。

詳しく見る

セッション

利用者とシステムの一連のやり取りを、ひとまとまりとして扱う単位。Webでは、ログイン状態などをページをまたいで保つために使う。

詳しく見る

SSH

ネットワーク越しにサーバーへ安全に接続し、操作するための仕組み。通信が暗号化され、鍵でログインできる。

詳しく見る

サービスアカウント

人ではなく、アプリケーションや自動処理が使うためのアカウント。クラウドのAPIを呼び出すときなどに使う。

詳しく見る

CVSS

脆弱性の深刻度を0.0〜10.0の数値で評価する共通の基準。数値が大きいほど深刻度が高い。

詳しく見る

認証

アクセスしてきた相手が本人であることを確かめる仕組み。パスワードや生体情報、電子証明書などを使う。

詳しく見る

スキーマ

データの構造や型、決まりごとを定義したもの。データベースのテーブルの設計や、JSONの形式の定義などに使う。

詳しく見る

CVE

公開された脆弱性に付けられる世界共通の識別番号。「CVE-2026-12345」のように年と連番で表す。

詳しく見る

脆弱性

ソフトウェアや設定の不備のうち、攻撃者に悪用されると情報漏えいや不正操作などにつながる弱点。

詳しく見る