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

Source: https://habr.com/ru/post/J145641/


All Articles