Linux 64ビットでのMySQLの面白い脆弱性

土曜日、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が脆弱性チェッカーを公開しました。



All Articles