PostgreSQL グローバル開発チームは、現在サポートされているすべてのバージョン( 15.4、14.9、13.12、12.16、および 11.21) のアップデートと、PostgreSQL 16 の 3 番目のベータ版をリリースしました。このリリースでは 2 つのセキュリティ ホールが修正され、過去数か月間に報告された40 を超えるバグが修正されています。
BRIN インデックスを使用して値を検索する場合は、NULL
このリリースにアップグレードした後にインデックスを再作成する必要があります。PostgreSQL 12 以降では、次のよう REINDEX CONCURRENTLY
な方法で、影響を受けるインデックスとテーブルへの書き込みのブロックを回避できます。REINDEX INDEX CONCURRENTLY your_index_name;
変更の完全なリストについては、 リリース ノートを参照してください。
PostgreSQL 11 EOL のお知らせ
PostgreSQL 11 は、2023 年 11 月 9 日に修正の受信を停止します。PostgreSQL 11 を運用環境で実行している場合は、サポートされている新しいバージョンの PostgreSQL へのアップグレードを計画することをお勧めします。詳細については、「バージョン管理ポリシー」を参照してください。
秘密の質問
CVE-2023-39417 : 参照内の拡張スクリプトにより@substitutions@
SQL インジェクションが可能になります。
サポートされている脆弱なバージョン: 11 ~ 15。通常、セキュリティ チームはサポートされていないバージョンをテストしませんが、この問題は長い間存在していました。
拡張スクリプトは、引用構造 (ドル引用符、 ''
、または )内で使用される場合に脆弱です""
。バンドルされていない拡張機能には脆弱性が存在します。確かに、ドキュメントの例やバンドルされていない拡張機能には穴があります。したがって、攻撃の前提条件は、管理者が脆弱で信頼できるバンドルされていない拡張ファイルをインストールすることです。この前提条件の下では、データベース レベルの権限を持つ攻撃者がブートストラップ スーパーユーザーとして任意のコードを実行できます。PostgreSQL はコア サーバーでこの攻撃を防ぐため、個々の拡張機能を変更する必要はありません。 @extowner@
@extschema@
@extschema:...@
CREATE
CVE-2023-39418 :セキュリティ ポリシーMERGE
を適用UPDATE
またはSELECT
適用できません。
サポートされている脆弱なバージョン: 15。
PostgreSQL 15 では、とに定義された行セキュリティ ポリシーに対して新しい行をテストMERGE
できないコマンドが導入されました。ポリシーで禁止されている場合、ユーザーは特定の行を保存できますが、ポリシーでは禁止されていません。その後の結果はアプリケーションによって異なります。これは、行セキュリティ ポリシーの定義に使用されるデータベースにのみ影響します。UPDATE
SELECT
UPDATE
SELECT
INSERT
CREATE POLICY
バグ修正と改善
以下にリストされている問題は PostgreSQL 15 に影響を与えますが、その一部はサポートされている他の PostgreSQL バージョンにも影響を与える可能性があります。
- BRIN インデックスの
NULL
値の処理を修正しました。この修復は既存の BRIN インデックスには適用されません。NULLREINDEX
値の検索に使用される BRIN インデックスを修復するには、ユーザーが実行する必要があります。 - DROP DATABASE が中断されたときに破損したデータベースを放置しないようにします。
- パーティション化されたインデックスに関するいくつかの修正。
- 拡張機能に拡張スキーマ外のオブジェクトが含まれている場合のバグを修正
ALTER EXTENSION ... SET SCHEMA
。 - テーブル アクセス メソッドの依存関係の追跡を修正しました。
- 一意性を証明するために、プランナーで部分的に一意なインデックスを使用しないでください。
- ルール アクションを拡張するときに、セキュリティ バリア ビューで RLS ポリシー式とサブ SELECT を適切に処理します。
SERIALIZABLE
トランザクション分離モードの競合検出における競合状態を修正しました。- アウトオブライン TOAST を必要とする複合列のフィールドを更新しようとすると 断続的に失敗する問題を修正しました。
- クエリのライフサイクル中に発生した複数のメモリ リークを修正します。
- jsonpath
datetime()
メソッドへの入力で小数秒を受け入れます。 - トークン制限が10,240 バイトに
pg_hba.conf
増加しました。pg_ident.conf
- JIT からのメモリ不足エラーは、
FATAL
C++ 例外ではなく PostgreSQL エラーとなるようになりました。 - 特定の種類の B ツリー インデックスの破損が検出された後の続行を許可します
VACUUM
。この修復により VACUUM は続行できますが、ユーザーはREINDEX
破損したインデックスを修復する必要があります。 - クラッシュ回復中に準備されたトランザクションを二重に再生しないようにします。
- 新しく作成された空のテーブルに対してチェックポイントが fsync を呼び出すようにしてください。
pg_waldump
およびからのwalsender
不正確なメッセージが記録されるのを避けるために、「コントレコードがありません」エラーをサイレントにします 。- [fuzzystrmatch]( https://www.postgresql.org/docs/current/fuzzystrmatch.html Soundex 関数を修正して、空の入力を正しく処理します。
difference()
intarray
GiST インデックスで大きすぎる入力配列を禁止するなど、のいくつかの修正。pg_dump
解析が必要な場合に、一意のインデックスに依存する SQL 標準関数 body() を正しく処理するように修正しましたBEGIN ATOMIC
。
利用可能な変更の完全なリストについては、 リリース ノートを参照してください。
PostgreSQL 16 Beta 3 の修正
- ロール認可に関する情報を表示するコマンドを
psql
追加します\drg
。 - を使用して
pg_waldump --save-fullpage
生成されたファイル名にタイムライン ID を追加します。 - 並列 VACUUM ワーカーでのデッドロック後のクラッシュを修正しました。
新機能と変更された機能の完全なリストについては、リリース ノートを参照してください。
ダウンロードアドレス: https://www.postgresql.org/download/