2006-02-14
このリリースは8.1.2の各種不具合を修正したもので、非常に深刻なセキュリティ問題を1つ含みます。 8.1メジャーリリースにおける新機能についてはE.192. リリース8.1を参照してください。
8.1.Xからの移行ではダンプ/リストアは不要です。 しかし、8.1.2より前のバージョンからアップグレードする場合は、E.190. リリース8.1.2を参照してください。
任意のログインしたユーザが他の任意のデータベースユーザIDにSET ROLE
することができる不具合を修正しました。(CVE-2006-0553)
有効検査が不適切であったため、
ユーザは
通常SET ROLE
がエラーの後に以前のロール設定に戻すために使用する特殊な状況を不正利用することができました。
これにより例えば、一般ユーザはスーパーユーザ状態を持つことができます。
権限の拡大という危険は8.1.0から8.1.2までのみに存在します。
しかし、7.3までさかのぼるすべてのリリースにおいて、アサートを有効にしてコンパイルした場合(これはデフォルトではありません)、非特権ユーザがサーバをクラッシュできるという、関連した不具合がSET SESSION AUTHORIZATION
にあります。
この問題を報告してくれたAkio Ishidaに感謝します。
自身が挿入した行に関する行の可視性ロジックについての不具合を修正しました。 (Tom)
非常に稀な状況で、現在のコマンドが挿入した行が、本来無効であるべき時に既に有効になっているものとして扱われることがありました。 リリース8.0.4、7.4.9、7.3.11で組み込まれた不具合を修正しました。
pg_clogおよびpg_subtransファイル生成時に「ファイルが既に存在する」というエラーを引き起こす競合条件を修正しました。 (Tom)
準備済み文内のUNKNOWN
パラメータ用のDOMAIN
制約を適切に検査します。
(Neil)
ALTER COLUMN TYPE
がFOREIGN KEY
、UNIQUE
、PRIMARY KEY
制約を確実に適切な順番で処理するようにしました。
(Nakano Yoshihisa)
独自の演算子や演算子クラスを参照するクロススキーマを持つダンプをリストアできるように修正しました。 (Tom)
COPY
に失敗した後、pg_restoreが適切に処理を継続できるようにしました。
これまではCOPY
データの残りをSQLコマンドとして扱おうとしました。
(Stephen Frost)
データディレクトリを指定しない場合にpg_ctl unregister
がクラッシュすることを修正しました。
(Magnus)
libpq PQprint
HTMLタグを修正しました。
(Christoph Zwerschke)
AMD64およびPPC上のecpgのクラッシュを修正しました。 (Neil)
関数の戻り値型宣言において、SETOF
と%TYPE
の両方を使用できるようにしました。
PL/pythonにおいて、引数を渡す段階でエラーが発生した場合に適切に復旧するようにしました。 (Neil)
plperl_return_next
内のメモリリークを修正しました。
(Neil)
Win32において、PL/perlのロケールの扱いをバックエンドに合わせるように修正しました。 (Andrew)
オプティマイザのさまざまな修正。 (Tom)
Win32においてpostgresql.conf
でlog_min_messages
がDEBUG3
以上に設定された時のクラッシュを修正しました。
(Bruce)
Win32、Cygwin、OS X、AIX用のpgxs -L
ライブラリ検索パス指定を修正しました。
(Bruce)
Win32の管理者権限を検査する時にSIDが有効か検査します。 (Magnus)
範囲外の日付入力を適切に拒否します。 (Kris Jurka)
configure時のfinite
およびisinf
の存在検査に関する移植性を修正しました。
(Tom)
データ行単位のカーネルコールを止め、libpq経由のCOPY IN
の速度を向上しました。
(Alon Goldshuv)
/contrib/tsearch2
のインデックス作成速度を向上しました。
(Tom)