2014-02-20このリリースは9.1.11に対し、各種不具合を修正したものです。リリース9.1を参照してください。バージョン9.1.12への移行9.1.Xからの移行ではダンプ/リストアは不要です。リリース9.1.11を参照して下さい。OPTION制限を強化しました。ROLEすることにより、この制限は簡単にバイパス出来ていました。セキュリティのインパクトは大体、ロールのメンバーが、権限を譲り受けた他のメンバーの意図に反し、アクセスを取り消すことができることです。未承認のロールメンバー追加はあまり重要ではありません。他者に多くの権限を提供することができるからです。(CVE-2014-0060)PLバリデータ関数を手動呼び出し経由の権限昇格を防止しました。明示的に呼び出すことができる通常のSQL関数でもあります。プロセスの権限昇格に悪用される可能性がありました。同様の可能性があれば、必須ではない手続き言語でも独自のバリデーション機能にこの変更を加える必要があります。(CVE-2014-0061)テーブルとインデックスDDLでの名前の多重検索を防止しました。Freund)が実行中の名前検索で異なる結果が出た場合、DDLのある部分をその他の部分とは違ったテーブルで実施することがありました。INDEXでは、権限チェックがインデックス作成とは異なるテーブルに対して実施されることにより、権限昇格攻撃を許す可能性があります。(CVE-2014-0062)長い日付時刻文字列によるバッファオーバーランを防止しました。Misch)MAXDATELEN定数はinterval型の取りえる最長の値に対して小さ過ぎたため、interval_out()関数内でバッファオーバーランを許していました。日付時刻の入力関数はバッファオーバーラン防止に対して慎重でしたが、非常に長いタイムゾーン名を含むような、有効な入力値を拒否するほど、制限は短いものでした。ecpgライブラリには、これらを含む幾つか固有の脆弱性を含んでいました。サイズ算出での整数オーバーフローによるバッファオーバーランを防止しました。Linnakangas)幾つかの関数、多くはデータ入力関数で、オーバフローをチェックせずにメモリの割り当てサイズを計算していました。オーバーフローが発生した場合、小さすぎるバッファが割り当てられ、それを越えて書かれていました。(CVE-2014-0064)固定サイズのバッファのオーバーランを防止しました。Mlich)固定サイズのバッファがオーバランしない明確な保証を提供するために、strlcpy()や関連する関数を使いました。前項とは違い、これらのケースが実際に問題を引き起こすかどうかは不明です。いうのは、ほとんどの場合、入力文字列のサイズは事前に制限されている様に思われるからです。いえ、コベリティ(Coverity)のこのタイプの警告はすべて黙らせた方が賢明と思えます。(CVE-2014-0065)crypt()関数がNULLを返した場合のクラッシュを防止しました。contrib/chkpassはクラッシュしていました。checkのリスクを文書化しました。テストを起動したオペレーティングシステムのユーザ特権を悪用できる可能性があります。将来のリリースでは、おそらくこのリスクを防ぐためにテスト手順の変更が盛り込む予定ですが、その前に公開議論が必要です。checkを使っている人に対して、警告を発するに留めています。(CVE-2014-0067)リレーションのセグメントが一杯でない時に、WALレコードが誤再生する場合があったのを修復しました。WAL更新は、本来あるべき場所から多くのページを通り過ぎて、間違ったページに適用されることがありました。このエラーはマスタサーバと比べてスタンバイサーバで著しい「肥大化(bloat)」をもたらすことが報告されています。この故障モードはクラッシュリカバリ中の重大なリスクとは思われません。更新が頻発するマスタから得たベースバックアップで作られたスタンバイサーバの初期同期の時にのみリスクが発生します。リカバリによって整合性がとれたか判定する箇所の不具合を修正しました。そのためにデータベースが実際に整合性が取れる前にホットスタンバイのクエリを許可している可能性がありました。pages」が発生する可能性もありました。ホットスタンバイモードのVACUUM操作によるWALリプレイで、Btreeインデックスページの不適切なロック処理を修正しました。pages」障害をもたらす可能性がありました。非リーフのGINインデックスページへの挿入によって、ページ全体のWALレコードに適宜書き込むことを保証します。Linnakangas)これまでのコードでは、部分ページ書き込みのイベント中にシステムがクラッシュした場合、インデックスが破損する恐れがありました。pause_at_recovery_targetとrecovery_target_inclusiveが両方セットされた場合、リカバリターゲットのレコードは停止後ではなく停止前に適用される事を保証します。Linnakangas)サーバプロセス終了中の競合状態を修正しました。ポインタを利用しないことを保証します。walsenderの終了ロジックとwalreceiverのSIGHUPシグナルハンドラの競合状態を修正しました。Lane)エラー出力ロジックの中で、errnoの安全でない参照方法を修正しました。Kruse)これは、主にHINTフィールドが欠如或いは不適切であるという奇妙な現象を引き起こしていました。サーバ起動時に早すぎるereport()関数使用によって、クラッシュする可能性があったのを修正しました。Lane)クラッシュが観察された主なケースは、読み取り権限を持たないディレクトリでサーバが起動された場合です。OpenSSLのソケット書き込み関数で、リトライフラグを適切に消去しました。Kukushkin)この消去が省かれると、SSLで暗号化された接続が突然切れた場合、サーバのロックアップを引き起こす可能性がありました。エスケープを含むユニコードの識別子(U&"..."構文)の長さチェックを修正しました。Lane)識別子がエスケープされたフォームが長すぎた場合、誤った切り捨て警告が出力されていました。実際には、エスケープをデコードした後、識別子に切り捨ては不要でした。ロールのリストで、型名をキーワードに使うことができるようにしました。ROLEのように、許されたロール識別子のリストから漏れていたケースがありました。zero_column_table)でパーサがクラッシュする障害を修正しました。...)のような、入れ子になったサブセレクトの誤ったプランによって、クラッシュする可能性があるのを修正しました。コマンドが統計情報を作る事を保証しました。全てのサンプリングされたエントリが広すぎる場合、極端な値を排除するのは正常なことです。TABLESPACE内で権限チェック無しにデータベースのデフォルトテーブルスペース使用を許可するようにしました。TABLEではそれをしていませんでした。set」エラーが発生してしたのを修正しました。Lane)pgstat関数の中でクライアントアドレスが全てゼロの場合のチェックを修正しました。Grittner)テキストサーチのパーサでマルチバイト文字を誤判別する可能性を修正しました。Lane)マルチバイトエンコーディングでロケールにCを使用している場合、非ASCII文字は誤判別される可能性がありました。Cygwinでは非Cロケールでも同様に誤判別する可能性がありました。plainto_tsquery()関数が誤作動する可能性があったのを修正しました。Linnakangas)メモリ領域が重なっている場合のコピーでmemcpy()関数ではなくmemmove()関数を使うようにしました。これによる具体的な障害報告はありませんが、これは確かに危険性がありました。pg_start_backup()とpg_stop_backup()の権限チェックの配置を修正しました。Hagander)以前のコーディングではカタログアにクセスにすべきではない時に、アクセスしようとすることがありました。ロケールチェック用のエンコーディング名として、SHIFT_JISを受け付けるようにしました。Ishii)Windows上のPQhost()関数の誤作動を修正しました。Masao)ホストが定義されていない場合、localhostを返すべきでした。STDIN中の障害用にlibpqとpsqlのエラーハンドリングを改善しました。STDIN中にサーバとの接続が切れた場合、9.2以上のサーバでは無限ループに陥る可能性がありました。これより古いバージョンのサーバや、他のクライアントアプリケーションでも、これに類する状況が起こるかもしれませんでした。pg_basebackupの冗長モードで、正しくないファイル名が出力される可能性があるのを修正しました。Hagander)ベースバックアップ内に2重に含ないように、PGDATA内のテーブルスペースに含まれることを避けました。Hagander)ecpgの記述子の並びが間違っているのを修正しました。(MauMau)ecpgで、接続パラメータにホスト名が欠如している場合の処理を適切に修正しました。Meskes)contrib/dblinkの接続開始時におけるパフォーマンス退行を修正しました。Conway)クライアントとサーバのエンコーディングが一致する場合、不必要な二重設定を止めました。contrib/isnで、ISMN値のチェックディジットの間違った演算を修正しました。Coelho)ドキュメント通りの手順でクライアントのみのコードをインストールできることを保証しました。DLLをbinディレクトリにインストールするようにしました。Dunstan)MSVCビルドに於いて、このコピーは長らく行われてきました。psqlのようなプログラムが、DLLを見つける事が出来ずに起動に失敗する問題は修正すべきです。Cygwin環境で廃止予定のdllwrapツールの使用を止めました。Atzeri)プレインテキストのHISTORYファイルとsrc/test/regress/READMEファイルは今後、生成されません。Lane)これらのテキストファイルは、メインHTMLとPDFドキュメントフォーマットで重複していました。それらの保守に関する問題は、読者が好むプレインテキストフォーマットより大幅に上回ります。配布用tarボールにはまた、これらの名前でファイルが含まれていますが、メインドキュメントを参照してもらうための指標となるスタブにすぎません。プレインテキストのINSTALLファイルは、そのためのユースケースとして、まだ保守されています。タイムゾーンデータファイルをtzdataリリース2013iに更新しました。ヨルダンでの夏時間の変更およびキューバの歴史的な地域データの修正が含まれます。IANAによって保守されず、実際の常用時計として表示されることが無いため、削除されました。リリース9.1.11。