オープンソースのデータベース「PostgreSQL」の開発チームであるPostgreSQL Global Development Groupは、2026年11月12日付で、サポート中の全系列に向けた更新版(18.7、17.12、16.16、15.20、14.25)と、次期メジャー版の第2リリース候補「PostgreSQL 19 RC 2」を公開した。今回の更新では52件の脆弱性と140件を超える不具合が修正されており、一部の脆弱性はデータベースを動かすOSのユーザー権限で任意のコードが実行される恐れがある。

52件の脆弱性と140件超の不具合を一度に修正

公式の発表によると、今回の更新で修正された脆弱性は52件にのぼる。発表に並ぶ脆弱性の多くには「任意のコードを実行する(executes arbitrary code)」と書かれており、CVSS v3の基本値が8.8と評価されたものが多い。

内容は多岐にわたる。サーバー本体の型の取り違え(タイプコンフュージョン)や解放済みメモリの使用(use-after-free)、ヒープバッファオーバーフローのほか、手続き言語のPL/Perl、PL/Tclやdblinkといった拡張機能、pgdump、pgrestore、reindexdb、vacuumdbといった付属のツールにも問題が見つかっている。行単位のセキュリティポリシーを回避して行を読めてしまうものや、サーバーのメモリの内容が漏れるものも含まれる。

代表例のCVE-2026-6460は「オブジェクトを作れる利用者」がコードを実行できる

代表的なものが、CVSS v3の基本値が8.8のCVE-2026-6460だ。公式の説明によると、主に ALTER ... SET DATA TYPE を通じて型の取り違えが起き、オブジェクトを作成できる利用者が、データベースを動かしているOSのユーザーとして任意のコードを実行できる。ALTER TABLE ... ADD COLUMN を実行して取り消したあとに再び列を追加する、といった別のDDLの経路もあるという。

原因について公式は、型の付いた値の追跡が不十分で、値が自分の型を示さない作りだったため、古い値がデータ辞書の項目やPL/pgSQLの変数など、システムのさまざまな場所に残りうると説明している。影響を受けるのは18.7、17.12、16.16、15.20、14.25より前の版で、攻撃にはデータベースへのログイン(低い権限)が必要とされる。

PostgreSQL 14は今回が最後のリリース

今回の14.25は、PostgreSQL 14系の最後のリリースとなる。公式の発表は、PostgreSQL 14は今後セキュリティや不具合の修正を受けられなくなるとして、より新しい版への移行を促している。

同時に公開されたPostgreSQL 19 RC 2は、正式版の公開を2026年11月19日に予定している。RC 1からの変更として JSON_ARRAY() と JSON_OBJECT() に関する変更の取り消しがあり、その機能で作ったオブジェクトは、アップグレードの前に削除するか定義し直す必要があるとしている。

利用者は早めの更新と、更新後の作業の確認を

マイナーバージョンの更新は、データのダンプと読み込みや pg_upgrade を必要とせず、プログラムを入れ替えるだけで済む。ただし公式の発表は、条件に当てはまる場合の更新後の作業を挙げている。GINインデックスや、gist_trgm_ops を使うpg_trgmのGiSTインデックス、長さを指定しない bpchar 列のB-treeインデックスの作り直し(REINDEX)、増分バックアップを使っている場合の新しいフルバックアップの取得、パーティションテーブルの NOT NULL NO INHERIT 制約の確認と修正などだ。

また、以前の脆弱性CVE-2026-6464の修正によって、psqlが1つのコマンド文字列に含まれる複数の COPY ... FROM STDIN を受け付けなくなっていた問題も、今回直された。

CVE-2026-6460はログインできる利用者による攻撃を前提としているが、複数の利用者やアプリケーションが同じデータベースを使う環境では影響が大きい。自分で運用するサーバーでは、使っている系列の最新版への更新を早めに検討したい。クラウドのマネージドサービスを使っている場合は、各事業者の案内を確認するとよい。

筆者の見立て

52件という数は、PostgreSQLの定例リリースとしては異例の多さだ。任意コード実行につながるものが多く、手続き言語や付属ツールにまで及んでいることから、外部の利用者に権限を渡している環境や、他人から受け取ったダンプを復元する運用では、特に優先して更新すべきだろう。また14系を使い続けている組織にとっては、今回が最後の修正となるため、移行計画を急ぐ必要がある。

まとめ

PostgreSQLは11月12日付で、52件の脆弱性と140件を超える不具合を修正した18.7、17.12、16.16、15.20、14.25を公開した。代表的なCVE-2026-6460では、オブジェクトを作成できる利用者がサーバー上で任意のコードを実行できる恐れがある。14系は今回で更新が終わるため、利用者は最新版への更新と、条件に応じた更新後の作業を確認したい。