MySQL の監査中に、e-matters は複数の問題を発見しました:
- COM_TABLE_DUMP 中での符号付き/符号なし整数の問題
-
符号付き整数として二種類のサイズが引数にとられ、その整数が負の数で
あるかどうかのチェックを行わずに符号なし整数へのキャストが行われていました。
この結果の数が memcpy() 処理で使われるため、メモリ破壊につながります。
- COM_CHANGE_USER でのパスワードの長さの扱い
-
異なるユーザに際認証を行う際に、MySQL は最初の認証で行われたチェック
の全部を行ってはいません。これにより、二つの問題が生じました:
- この問題により、一文字パスワードの総当たりが可能となります
(最初のログインの際の同様の問題は 2002 年 2 月に修正されています)。
この問題は、一般ユーザがデータベースの root 権限を得ることができます
- パスワードバッファをオーバーフローさせることができます。
それによって、サーバに任意のコードを実行させることができます
- libmysqlclient 中の read_rows() のオーバーフロー
-
SQL サーバから返された行を処理する際、大きすぎる行や NUL終了文字が
あるかどうかのチェックが行われていませんでした。
この問題を悪用すると、攻撃を受けた MySQL サーバに接続している SQL
クライアントを攻撃することができます。
- libmysqlclient 中の read_one_row() のオーバーフロー
-
SQL サーバから返された行を処理する際、返されるフィールドのサイズ
が確認されていません。この問題を悪用すると、攻撃を受けた MySQL
サーバに接続している SQL クライアントを攻撃することができます。
これらの問題は、 現安定版 (stable) Debian GNU/Linux 3.0/woody では
バージョン 3.23.49-8.2 で、旧安定版 Debian GNU/Linux 2.2/potato では
バージョン 3.22.32-6.3 で各々修正されています。
できるだけ早急に mysql パッケージ群をアップグレードすることを
お勧めします。