土曜日、MariaDBプロジェクトのセキュリティコーディネーターSergei Golubchik(petropavel)
は 、バージョン5.1.61、5.2.11、5.3.5、5.5.22までのMySQL / MariaDBに興味深い脆弱性があることを
発表しました。
一番下の行は、MariaDB / MySQLユーザーが接続すると、トークン(パスワードとハッシュからのSHA)が計算され、それが期待値と比較されるということです。 この場合、memcmp()関数は-128..127の範囲の値を返す必要がありますが、一部のプラットフォーム(SSE最適化を使用したLinuxのglibcのようです)では、戻り値が範囲外になる場合があります。
その結果、256個のうち1個の場合、ハッシュに関係なく、期待値を持つハッシュ比較プロシージャは常にtrueを返します。 言い換えれば、システムは確率1/256のランダムなパスワードに対して脆弱です。
その結果、単純なbashコマンドにより、攻撃者は、パスワードを知らなくても、脆弱なMySQLサーバーにルートアクセスできます。
$ for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done mysql>
現在、この脆弱性は次の構成で非公式に
確認されています。
Ubuntu Linux 64ビット(10.04、10.10、11.04、11.10、12.04)
Debian Linux 64ビット(特定のバージョンはまだ明確ではありません)
Arch Linux(同じ)
Fedora 16(64ビット)
ユーザーは、脆弱性が観察されていないように見える構成も報告します。
公式のMySQLおよびMariaDBビルド(Windowsを含む)Red Hat Enterprise Linux、CentOS(32ビットおよび64ビット)
Ubuntu Linux 32ビット(10.04、11.10、12.04、おそらくすべて)
Debian Linux 6.0.3 64ビット(バージョン14.14 Distrib 5.5.18)
Debian Linux lenny 32-ビット5.0.51a-24 + lenny5
Debian Linux lenny 64ビット5.0.51a-24 + lenny5
Debian Linux lenny 64ビット5.1.51-1-log
Debian Linux squeeze 64-ビット5.1.49-3-log
Debian Linux squeeze 32ビット5.1.61-0 + squeeze1
Debian Linux squeeze 64ビット5.1.61-0 + squeeze1
脆弱で不死身のシステムの正確なリストはありません。
Accuvant LabsのJoshua Drakeが脆弱性チェッカーを公開しました。