リリース日: 2010-05-17
このリリースは7.4.28に対し、各種の不具合を修正したものです。 7.4メジャーリリースにおける新機能についてはE.277. リリース7.4を参照してください。
PostgreSQLコミュニティは2010年7月に7.4.X系のリリースの更新版の公開を停止します。 ユーザには新しいリリース版まで更新することを奨励します。
7.4.Xからの移行ではダンプ/リストアは不要です。 しかし7.4.26以前のバージョンからアップデートする場合はE.251. リリース7.4.26を参照してください。
Safe.pm
を使用するのではなく、インタプリタ全体に適用されるopmaskを使用してplperl
を強制的に制限します。(Tim Bunce, Andrew Dunstan)
最近の開発によりplperl
を信頼できるとする根拠とするにはSafe.pm
が非常に安全ではないことを知らされました。
この変更により、Safe.pm
の使用がなくなり、常に適用されるopcodeマスクを持つ別のインタプリタを使用するようになります。
この変更の喜ばしい副作用として、plperl
内で普通の方法でPerlのstrict
プラグマが使用できるようになりました。
また、Perlの$a
と$b
がソート関数で想定される動作を行うようになり、関数のコンパイルが非常に高速になりました。(CVE-2010-1169)
PL/Tclにおいてpltcl_modules
経由で信頼できないコードが実行されることを防止しました。(Tom)
PL/TclのデータベーステーブルからTclコードを自動読み込みする機能はトロイの木馬攻撃によりつけこまれる可能性がありました。
そのテーブルの作成や挿入のできるユーザに対する制限がなかったためです。
この変更により、pltcl_modules
がスーパーユーザにより所有されていない限り、この機能は無効になります。
(しかし、このテーブルに対する権限は検査されませんので、安全性が低いモジュールを本当に必要とするインストレーションでは、信頼された非スーパーユーザに適切な権限を付与することができます。)
また、
pltclu
関数を本当に実行しようとしていない限り、制限がない「通常の」Tclにコードが読み込まれることを防止しました。(CVE-2010-1170)
非特権ユーザがスーパーユーザのみのパラメータ設定を再設定することを許しません。(Alvaro)
これまで、非特権ユーザが自身に対するALTER USER ... RESET ALL
または自身が所有するデータベースに対するALTER DATABASE ... RESET ALL
を行った場合、そのユーザまたはデータベースに対する特別なパラメータ設定は、たとえスーパーユーザのみにより変更可能なものとして提供されるものであっても、すべて削除されました。
ALTER
はそのユーザが変更権限を持つパラメータのみを削除するようになりました。
CONTEXT
追加がログ項目になされる時にシャットダウンが発生した場合に、バックエンドのシャットダウン時にクラッシュする可能性を防ぎました。(Tom)
現在のトランザクションがログメッセージを出力する時点に達した時にすでにロールバックされているために文脈出力関数が失敗することがありました。
pl/perlのppport.h
を最近のPerlバージョンに更新しました。(Andrew)
pl/python内の雑多なメモリリークを修正しました。(Andreas Freund, Tom)
contrib/pgstattuple
関数がキャンセル割り込みに即座に応答することを確実にしました。(Tatsuhito Kasahara)
サーバ起動時に、既存の共有メモリセグメントに対してshmget()
がEINVAL
を返す状況を適切に扱うようにしました。(Tom)
この振舞いはOS Xを含むBSD派生のカーネルにおいて観測されました。 共有メモリ要求サイズが大きすぎるという警告の、完全に間違った起動失敗という結果になりました。