概要

PostgreSQLプロジェクトは8月13日、サポート対象となっている全バージョン(18.6、17.11、16.15、15.19、14.24)に対する定期アップデートを公開した。今回のリリースでは28件のセキュリティ脆弱性と110件以上のバグが修正されており、あわせて次期メジャーバージョンとなるPostgreSQL 19のベータ3も公開された。マイナーバージョンアップデートのため、既存環境ではpg_dumpの再実行やデータのリロードは不要で、PostgreSQLを停止してバイナリを更新後に再起動するだけで適用できる。

セキュリティ脆弱性の詳細

修正された28件の脆弱性のうち、特に深刻度の高いものが多数含まれている点が今回のリリースの特徴だ。CVSSスコア8.8の脆弱性としては、tsvector/tsqueryの整数オーバーフロー、正規表現処理におけるヒープバッファオーバーフロー、to_char関数のヒープバッファオーバーフロー、plperlのtiedオブジェクトに起因するヒープバッファオーバーフロー、pg_stat_statementsのヒープバッファオーバーフローなどが挙げられ、いずれも悪用された場合は任意コード実行につながる恐れがある。このほか、EXTRACT関数の引数を通じたSQLインジェクションや、pg_restore_attribute_stats()・カーソルのCLOSEとDECLAREの組み合わせにおける型混同、pg_dumpのヒープバッファオーバーフローなども同スコアで報告されている。psqlクライアント側の脆弱性としては、COPY FROM STDINの早期終了によりデータ行がpsqlコマンドとして処理されてしまう問題(CVSS 8.1)や、\unrestrictコマンドを通じた任意コード実行(CVSS 8.8)も修正された。中程度の深刻度では、ロジカルデコーディングを悪用した任意ファイルのdlopenや、pgcryptoにおける平文暗号化の脆弱性なども対象に含まれる。

主なバグ修正

セキュリティ修正に加え、データの整合性に関わる重要なバグ修正も多数含まれる。並列GINインデックスビルドでは、並列ワーカーが初期化されていない行数を報告することでreltuplesが無限大やNaNになる問題が修正されており、該当するインデックスを持つテーブルではANALYZEの再実行が推奨されている。btree_gistでは、float4/float8のNaN処理やbit/bit varying型のソート順に問題があり、影響を受けるインデックスの再構築が必要となる。また、14,653個以上のラベルを含むltree値の比較が不正確になり、B-treeインデックスが破損する可能性がある問題も修正されたため、該当するインデックスの再構築が推奨される。このほか、RANGEパーティションのデフォルトパーティション処理、外部テーブルにおけるランタイムパーティション剪定、RETURNING句のOLD/NEW処理、ハッシュジョインのパフォーマンス、jsonpathの@?@@演算子のエラー処理、VACUUMのラップアラウンド失敗時セーフモードなど、幅広い領域で修正が行われている。

19 Beta 3とサポート終了について

同時にリリースされたPostgreSQL 19 Beta 3では、Beta 1で導入されていたGROUP BY ALL機能が撤回されたことが大きな変更点となる。このほか、FOR PORTION OFテンポラルテーブル構文やロジカルレプリケーションのシーケンス同期機能、REFRESH SEQUENCESのレース条件、postgres_fdwにおける配列比較のプッシュダウンなど、複数の不具合が修正されている。プロジェクトは本番相当のワークロードでのベータ版テストを呼びかけており、フィードバックはPostgreSQL公式のバグ報告フォームから受け付けている。なお、PostgreSQL 14は2026年11月12日にサポート終了が予定されており、同バージョンを本番環境で運用しているユーザーには早めのアップグレード計画の策定が推奨される。