5.0.54ではいくつかのセキュリティ脆弱性の修正が行われている。

InnoDBに対するDOS攻撃

InnoDBテーブルはSPATIALインデックスをサポートしていないが、テーブル定義はできてしまうという特徴があった。この状態で特定のSQL文を発行すると、MySQLをクラッシュさせることができてしまう、という脆弱性が発見され(security issue, CVE-2007-5925)、その修正が行われた。テーブル定義を正常終了させるのではなく、エラーを返すようにした。なお具体的な攻撃方法は、ここでは伏せておく。

ODBC接続時のSQLインジェクション脆弱性の修正

過去に、シフトJIS系(※)の文字エンコーディング環境において、バイト列の途中に不正な文字(シングルクオートなど)を埋め込むと、それ以降の文字列をSQL命令として解釈されてしまう危険があるという、SQLインジェクション脆弱性が報告されたことがあった。この脆弱性に対する修正は、MySQL5.0.22(2006年6月)に行われている。

※より正確には、マルチバイト文字の2バイト目以降に、0x5C(半角円記号)を含む可能性のある文字エンコーディング。

だが当時行われた修正について、MySQL AB提供のODBCドライバ(Connector/ODBC)とMySQLを併用するパターンでは修正がされておらず、SQLインジェクションが発生してしまうことが明らかになり、今回で修正が行われた。

この修正への対処方法は比較的容易で、単にConnector/ODBCを3.51.17以降に入れ替えるだけで防ぐことができる(MySQL本体を5.0.54に上げることは必須ではない)。問題のあった関数mysqlodbcescape_stringはMySQL5.0.54で削除されたのだが、Connector/ODBC3.51.17以降ではその関数を使わなくても動作するように書き換えられたためである。

それ以外にも多くのバグの修正が行われている。具体的な修正内容については、リリースノート(英語)を参考にしてほしい。