|
MySQL 5.1.46sp1 リリースノート (日本語翻訳)
これはMySQLEnterpriseServer5.1の サービスパック リリースです。
InnoDB
の
プラグインバージョンを使用する場合は、5.1.46sp1ではなく、MySQL5.1.48以降を使用することをお勧めします。これは、5.1.46sp1には最初のプロダクションレディバージョンが含まれており、その後のバージョンではより広範囲にわたるプロダクションユースで見つかったバグがいくつか修正されているためです。
修正されたバグ:
・
セキュリティ修正
:
サーバは、
COM_FIELD_LIST
コマンドパケットのテーブル名引数の正当性およびテーブル名の許容基準への準拠をチェックしていなかった。したがって、特別に作成されたテーブル名引数を
COM_FIELD_LIST
に付与することで、権限およびテーブルレベルの許可に対するほぼすべての形式のチェックを迂回することが可能であった。
つまりMySQL5.0以降では、1つのテーブルの
SELECT
権限を有する認証済みユーザが、その他のすべてのデータベースのすべてのテーブルのフィールド定義を取得でき、さらにはサーバのファイルシステムからアクセス可能なその他のMySQLインスタンスも取得できる可能性があった。
さらにMySQL5.1以降では、1つのテーブルの
DELETE
または
SELECT
権限を有する認証済みユーザが、このサーバ上にあるすべてのデータベースのすべてのテーブルのコンテンツだけでなく、サーバのファイルシステムからアクセス可能なその他のMySQLインスタンスの削除や読み取りを行うことが可能であった(
Bug#53371
、
CVE-2010-1848
)。
・
セキュリティ修正
:
COM_FIELD_LIST
コマンドパケットのテーブル名引数に対して境界チェックを行わないため、
サーバがバッファオーバーフロー攻撃を受ける可能性があった。テーブル名に長いデータを送信することで、バッファのオーバーフローが引き起こされるため、認証済みユーザが悪意のあるコードを投入する可能性があった(
Bug#53237
、
CVE-2010-1850
)。
・ セキュリティ修正 : 1つのパケットの最大サイズよりも大きなパケットを受信した場合、サーバが無制限にパケットの読み取りを続ける可能性があった( Bug#50974 、 CVE-2010-1849 )。
・
ALTERDATABASE`#mysql50#<
special
>`UPGRADEDATADIRECTORYNAME
の<
special
>が「.」、「..」、または「
」あるいは「
」で始まるシーケンスの場合、MySQLはこのステートメントを正しく処理しなかった。MySQLはサーバデータディレクトリ(他の通常のデータベースが含まれている)をデータベースディレクトリとして使用していた(
Bug#53804
、
CVE-2010-2008
)。
・圧縮テーブルを使用している場合、
InnoDB
ページ分割が無限ループに陥ることがあった(
Bug#52964
)。
・
InnoDB
は、レコードヘッダに“オフページストレージ”フラグがあることを確認せずにオフページストレージの選択を試みていた。これを修正するために、
DYNAMIC
および
COMPRESSED
フォーマットにおいて、
InnoDB
は長さの上限が256バイトを超えない非
BLOB
カラムをローカルに保存するようになった。これは、長さの上限が255バイト以下の場合は、“外部ストレージ”フラグが入る余地がないからである。
REDUNDANT
および
COMPACT
フォーマットにおいては、
InnoDB
は
local_len
=788バイトまでの長さのカラムは常にローカルに保存するため、この制限は当然適用される(
Bug#52745
)。
・トリガのリストを作成する際に、構文的に間違ったトリガにより、サーバがクラッシュする可能性があった( Bug#50755 )。
・
INFORMATION_SCHEMA.ROUTINES
または
INFORMATION_SCHEMA.PARAMETERS
から選択を行うと、メモリリークが発生した(
Bug#48729
)。
・サブクエリを含むクエリで
EXPLAIN
を実行すると、サーバがクラッシュする可能性があった(
Bug#48419
)。