トップ/記事一覧/PostgreSQL管理ツールpgAdminに乗っ取りの脆弱性 CVE-2026-17566はv9.17へ
pgadmin-cve-cover-ja

PostgreSQL管理ツールpgAdminに乗っ取りの脆弱性 CVE-2026-17566はv9.17へ

PostgreSQLのデータベースを管理する定番ツール「pgAdmin」に、ログインした利用者が通常権限だけでサーバーを乗っ取れる深刻度9.9の脆弱性など7件が見つかりました。悪用されるとデータベースサーバー上で任意のコマンドを実行される恐れがあります。実際の被害はまだ確認されていませんが、対象や条件、最新版v9.17への更新方法を整理します。

ニュース2026年8月1日公開 本日更新
目次
この記事のポイント

PostgreSQLのデータベースを管理する定番ツール「pgAdmin」に、ログインした利用者が通常権限だけでサーバーを乗っ取れる深刻度9.9の脆弱性など7件が見つかりました。悪用されるとデータベースサーバー上で任意のコマンドを実行される恐れがあります。実際の被害はまだ確認されていませんが、対象や条件、最新版v9.17への更新方法を整理します。

PostgreSQLというデータベースを管理するための定番ソフト「pgAdmin 4」に、サーバーを乗っ取られる恐れのある深刻な脆弱性を含む7件の問題が見つかりました。開発チームは2026年7月31日、これらをまとめて修正した最新版「v9.17」を公開しています。

最も危険なのは「CVE-2026-17566」で、10点満点中9.9という極めて高い深刻度がつきました。pgAdminにログインできる利用者が、通常あたえられている権限を使うだけで、データベースを動かしているサーバー上で好きなコマンドを実行できてしまう問題です。現時点で実際に攻撃された報告はありませんが、影響を受ける環境は最新版へ早めに更新することがすすめられます。

この記事では、7件の内容と「自分の環境は対象なのか」「何をすればよいのか」を、専門用語をかみくだいて整理します。

pgAdminとは何か、今回何が起きたのか

pgAdmin 4は、オープンソースのデータベース「PostgreSQL」を、ブラウザやアプリの画面から操作するための管理ツールです。表の作成、データの検索、バックアップの取得といった作業を、コマンドを打たずにマウス操作で行えます。pgAdmin側は自らを「最も普及したPostgreSQLの管理ツール」と位置づけており、社内のサーバーやクラウド上に設置して、開発者やデータベース担当者が共同で使う場面が多いソフトです。

今回、この管理画面の複数の機能に、権限を越えた操作や不正なコマンドの実行につながる欠陥が見つかりました。開発チームの公表によると、対象は7件で、いずれもv9.17で修正されています。深刻度の内訳は次のとおりです。深刻度(CVSS)は脆弱性の危険度を10点満点で表す国際的な指標で、9点以上が最上位の「緊急」に分類されます。

脆弱性番号深刻度何ができてしまうか攻撃の前提
CVE-2026-175669.9(緊急)サーバー上で
任意コマンド実行
ログイン+
通常権限
CVE-2026-173499.6(緊急)他人の接続情報を
乗っ取る
ログイン+
低い権限
CVE-2026-173519.0(緊急)読み取り専用の
制限を突破
ログイン+
AI機能の利用
CVE-2026-173468.8(重要)他人の画面で
不正な命令を実行
ログイン+
低い権限
CVE-2026-173477.5(重要)サーバー上で
コマンド実行
特定のログイン
連携の利用時
CVE-2026-17348(同時修正)ログイン前でも
一部機能に到達
ネットワーク到達
CVE-2026-17350(同時修正)権限チェックの
すり抜け
ログイン+
低い権限

共通するのは、いずれも「pgAdminの画面にログインできる状態」が出発点になっている点です。ログイン前のインターネット越しに一発で乗っ取られるタイプではありません。ただし、pgAdminは複数人で共有されることが多く、いちど誰かのアカウントや低い権限が悪用されると、そこから最上位のCVE-2026-17566でサーバーそのものを奪われる連鎖が起こり得ます。だからこそ、権限が低い利用者がいる環境ほど早い更新が必要になります。

誰が狙い、何をしてくるのか

今回の脆弱性で最も警戒すべきなのは、pgAdminの管理画面にログインできる立場を悪用できる人物です。具体的には、正規のアカウントを持つ内部関係者や、どこかで盗んだIDとパスワードでpgAdminにサインインした攻撃者が想定されます。pgAdminは社内ネットワークやクラウド上に置かれ、開発チームや外部委託先など複数の人が同じ画面を共有して使うことが珍しくありません。全員が管理者権限を持っているわけではなく、一部の作業しかできない「低い権限」の利用者も混在します。今回の穴は、その低い権限の利用者からでも悪用の起点になり得る点が厄介です。

そうした相手は、データの取り込みや書き出しといった一見ふつうの機能を悪用して、データベースを動かしているサーバー上で好きなコマンドを実行しようとします。画面の操作としては通常のインポート作業と見分けがつきにくく、裏側で細工した文字列を紛れ込ませることで、本来なら禁止されているはずの外部プログラム呼び出しを成立させてしまいます。

これが成立すると、被害は管理画面の中だけにとどまりません。サービスを利用するエンドユーザーにとっては、データベースに保存された個人情報や取引履歴が丸ごと抜き取られる恐れがあります。システムを運用する企業や組織にとっては、データベースサーバーそのものを乗っ取られ、そこを足がかりに社内の他のサーバーへ侵入されたり、ファイルを暗号化して身代金を要求されたりするリスクにつながります。データベースは多くのサービスの心臓部であり、その管理ツールが乗っ取られることの重さは、これまで国内でも繰り返し起きてきた情報流出事件が示すとおりです。だからこそ、次に説明する更新作業を後回しにしないことが対策の第一歩になります。

最も危険な「サーバー乗っ取り」CVE-2026-17566

CVE-2026-17566: データ取り込み機能から任意コマンド実行(深刻度9.9)

7件のなかで突出して危険なのがCVE-2026-17566です。pgAdminには、CSVファイルなどからデータを取り込む「インポート/エクスポート」機能があります。この機能は内部で、PostgreSQL付属のコマンドツール「psql」を呼び出して処理しています。

問題は、pgAdminが組み立てる命令文のチェックが不十分だった点にあります。命令文が正しく閉じているかを確認する内部の検査(_is_query_parens_balanced())が、バックスラッシュ記号(\)の扱いをPostgreSQL本体と食い違ったまま解釈していました。攻撃者はこのズレを突いて、psqlに「外部プログラムを実行せよ」という指示(TO PROGRAM)を紛れ込ませることができます。開発チームの説明では、たとえば SELECT 'a\') TO PROGRAM 'echo pwned' x' のような入力が検査をすり抜けたとされています。

深刻なのは、この攻撃に特別な管理者権限が要らないことです。開発チームのアドバイザリは、この機能が「通常あたえられている一般的な権限(tools_import_export_data)だけで守られていた」と明記しています。つまり、データの取り込みができる程度のごくふつうの利用者が、サーバー上でOSレベルのコマンドを実行できてしまうということです。これがサーバー乗っ取り(攻撃者が用意した任意のプログラムを動かされる状態)に直結します。

なお、この問題は過去にRestore(復元)機能で見つかった同種の欠陥(CVE-2025-12762など)と似た系統ですが、別の機能から生まれた独立した不具合です。似た穴が繰り返し見つかっていることは、pgAdminが外部コマンドを呼び出す設計そのものに注意が要ることを示しています。

そのほかの重大な脆弱性

CVE-2026-17349: 他人のデータベース接続情報を乗っ取る(深刻度9.6)

CVE-2026-17349は、複数人で使う「ワークスペース」機能の穴です。本来はアクセスできないはずの他人の共有サーバーに接続を試みると、そのサーバーの設定が複製され、元の持ち主の接続情報や権限をそのまま引き継いでしまいます。低い権限の利用者が、他人のデータベースに正規の資格でつながれてしまう権限昇格につながります。この問題は、開発チームが別の修正作業を点検している最中に内部で見つけたと説明されています。

CVE-2026-17351: AI補助機能で「読み取り専用」を突破(深刻度9.0)

CVE-2026-17351は、pgAdminに搭載されたAIアシスタント機能に関わる問題です。この機能には本来「データを書き換えない読み取り専用」の安全装置がありますが、命令文を解釈する部品とPostgreSQL本体との解釈差を突くことで、その制限を回避して書き込みや確定処理を密かに紛れ込ませることができます。開発チームはPostgreSQL 18の実機でこの回避が成立することを検証済みとしています。

CVE-2026-17346: 他人の画面で不正な命令を実行させる(深刻度8.8)

CVE-2026-17346は、データベースの命令文に不正なコードを紛れ込ませるSQLインジェクションと呼ばれる欠陥です。低い権限の利用者が、アポストロフィ(')を含む名前でテーブルなどを作成しておくと、あとから上位権限の管理者がその情報タブを開いた瞬間に、管理者の画面で仕込まれた命令が実行されます。相手が操作するのを待って発動する「時限式」の攻撃です。同種のデータベース脆弱性は、先日のProxySQLの事例でも問題になっています。

CVE-2026-17347: ログイン連携経由のコマンド実行(深刻度7.5)

CVE-2026-17347は、外部のログイン連携(シングルサインオンなど)を使っている環境が対象です。利用者名がそのままコマンドの一部として扱われていたため、利用者名に特殊な記号を仕込むことで、pgAdminのサービス権限で任意コマンドを実行できました。この機能設定を使っていない環境には影響しません。

残る2件(CVE-2026-17348 / 17350)も同時に修正

上記に加えて、ログイン前でも一部機能に到達できてしまう問題(CVE-2026-17348)と、ツールの権限チェックをすり抜ける問題(CVE-2026-17350)も同じv9.17で修正されています。今回のリリースは合計7件をまとめて塞ぐ内容です。なお17346・17347・17351は、6月のv9.16で直したはずの問題(CVE-2026-12044〜12046)の修正が不十分で、あらためて直された経緯があります。

自分の環境は対象か、何をすればよいか

判断はシンプルです。使っているpgAdmin 4のバージョンがv9.17より前なら対象、v9.17以降なら修正済みです。バージョンはpgAdminの画面上部のメニューから「About pgAdmin 4」を開くと確認できます。

使用中のバージョン状態やるべきこと
v9.16 以前7件すべて影響v9.17へ更新
v9.17修正済み対応不要
わからない要確認バージョン確認後
最新版へ

対処は最新版への更新が基本です。pgAdminはデスクトップ版・サーバー版(Web版)ともに公式サイトから最新版を入手できます。すぐに更新できない場合の当面のリスク低減策として、pgAdminをインターネットから直接触れない場所に置く、利用者ごとの権限を必要最小限にしぼる、共有アカウントをやめて個人ごとのログインにする、といった運用面の見直しも有効です。

なお、修正版のバージョン表記には注意点があります。pgAdmin公式のリリースノートや不具合管理システムは、CVE-2026-17566を含む7件すべてをv9.17で修正と記載しています。一方、脆弱性情報データベース(NVDなど)ではCVE-2026-17566の影響範囲が「v9.18より前」と書かれており、両者に食い違いがあります。ただしv9.18はまだ公開されておらず、一次情報にあたるpgAdmin側の記述に従えば、更新すべき目標はv9.17です。迷った場合は、その時点で入手できる最新版に上げておけば問題ありません。

実際に攻撃されているのか

2026年7月31日の公開時点で、これらの脆弱性が実際の攻撃に使われたという報告は確認されていません。米政府機関CISAが公開している「実際に攻撃が確認された脆弱性のリスト(KEVカタログ)」にも、今回の7件は登録されていません。武器化された攻撃ツールが出回っている状況も、今のところ確認されていません。

ただし、各脆弱性の技術的な説明のなかには、攻撃が成立することを示す概念実証(PoC)の入力例がすでに公開されています。仕組みが公開されている以上、攻撃ツールが作られるまでの時間は長くないと考えるのが安全です。過去にも、PostgreSQLを使う構成が狙われたDrupalの事例や、PostgreSQL拡張機能pglogicalの権限問題のように、データベース周辺のソフトは公開後に攻撃対象となってきました。「まだ攻撃されていない今のうちに」更新を済ませておくのが得策です。

これまでの経緯

← スワイプで移動

まとめ

PostgreSQLの定番管理ツールpgAdmin 4に、サーバー乗っ取りにつながる深刻度9.9のCVE-2026-17566を筆頭に7件の脆弱性が見つかり、v9.17で修正されました。いずれも「pgAdminにログインできること」が前提で、インターネット越しに突然乗っ取られるものではありませんが、通常権限の利用者から悪用の起点になり得る点が危険です。実際の攻撃はまだ確認されていないものの、攻撃の仕組みはすでに公開されています。pgAdminはデータベースという多くのサービスの心臓部を扱うツールだけに、v9.16以前を使っている環境は、攻撃が広まる前にv9.17へ更新しておくことがすすめられます。データベースの性能や設計に関心がある方は、あわせてPostgreSQLのチューニング解説も参考にしてください。

参照元

avatar-m-1

堀川 慎

Backend Engineer / AWS / Django / Go