リリース日: 2010-10-04
このリリースは9.0.0に対し、各種の不具合を修正したものです。 9.0メジャーリリースにおける新機能についてはE.151を参照してください。
9.0.Xからの移行ではダンプ/リストアは不要です。
PL/PerlおよびPL/Tclにおいて、呼び出し元のSQLユーザIDごとに別のインタプリタを使用します。(Tom Lane)
この変更は、同じセッション内でその後に異なるSQLユーザIDにより実行されるPerlまたはTclコード(例えばSECURITY DEFINER
の内部)を破壊することで発生する可能性があるというセキュリティ問題を防止するものです。
ほとんどのスクリプト用言語は、対象とする関数で呼び出される標準関数や演算子の再定義など、これを行うことができる多くの方法を提供します。
この変更がないと、PerlまたはTcl言語の使用権限を持つ任意のSQLユーザは基本的に、対象の関数の所有者が持つSQL権限でできることを何でもできるようになります。
この変更の欠点はPerlおよびTcl関数間の内部通信がより難しくなるという点です。 逃げ道を提供するために、PL/PerlUおよびPL/TclU関数ではまだセッション当たり1つのインタプリタのみを使用します。 これらのすべての関数は従来よりデータベーススーパーユーザの信頼レベルで実行されますので、これはセキュリティ問題とはみなされません。
信頼された実行を提供することを主張するサードパーティ製の手続き言語は似たようなセキュリティ問題を持つ可能性が大きくあります。 セキュリティが非常に重要な目的のために依存している手続き言語があれば、その作者に連絡を取ることを勧めます。
この問題を指摘いただいたTim Bunceに感謝します(CVE-2010-3433)。
pg_get_expr()
関数を副選択の出力に対して使用し続けられるようにpg_get_expr()
のセキュリティ修正を改良しました。(Tom Lane)
不正なプレースホルダ位置の評価を修正しました。(Tom Lane)
この不具合のため外部結合の内側が出力リスト内に制限がない式を持つ副選択であった場合など、問い合わせ出力がNULLであるべき時に非NULLの結果になるかもしれませんでした。
結合除去におけるプレースホルダ式の扱いを修正しました。(Tom Lane)
UNION ALL
のメンバーリレーションの二重スキャンの可能性を修正しました。(Tom Lane)
監視中止後のProcessIncomingNotify()における無限ループを防止します。(Jeff Davis)
自動バキューム処理中のクラッシュからshow_session_authorization()を防止します。(Tom Lane)
0001-01-01 AD以前のユリウス日の入力を再度許します。(Tom Lane)
8.4より前では'J100000'::date
などの入力が動作しました。
しかし、エラー検査を加えたことで意図せず壊れていました。
自動コミットモードが無効な場合、DISCARD ALL
をトランザクションブロック内に包むべきものではないコマンドとしてpsqlが認識するようにしました。(Itagaki Takahiro)
構築手順や文書を更新して、ソースコードリポジトリがCVSからGitに変更されたことを反映しました。(Magnus Hagander他)