MySQL 認証の脆弱性は 5.5.24 にアップグレードすると修正される可能性があります

MySQL 認証の脆弱性は 5.5.24 にアップグレードすると修正される可能性があります

今朝、コンピューターの電源を入れると、seclists で衝撃的なスレッドを見つけました: http://seclists.org/oss-sec/2012/q2/493MySQL には、5.1 から 5.5 までのほぼすべてのバージョンに影響する重大なセキュリティ脆弱性があります。問題となるモジュールは、ログイン時のパスワード認証部分(password.c)です。ユーザー名(rootなど)が分かっている場合は、単純に何度も再試行(平均約256回)するだけでログインできます。ただし、MySQL 認証では、ユーザー名、IP、パスワードの 3 組が使用されます。クライアントの IP が mysql.user テーブルに見つからない場合、ログインできません。

このバグは実は 4 月にはすでに発見されていました。今年 5 月 7 日に MySQL 5.5.24 がリリースされたときに、このバグは修正されました。

脆弱性分析:

問題のあるコードは次のとおりです

/*
暗号化されたメッセージがパスワードと一致していることを確認する。
受信した応答が本物であるかどうかをサーバーが確認するために使用されます。
この関数は与えられた文字列の長さをチェックしません。メッセージは
ヌル終端、応答およびhash_stage2は少なくともSHA1_HASH_SIZEである必要があります
長いです(そうでない場合は、何か怪しいことが起こっています)。
概要
チェックスクランブル()
クライアントの応答をスクランブルします。おそらく scramble() によって生成されます。
メッセージの元のランダムな文字列、以前にクライアントに送信されました
(おそらくscramble()の2番目の引数)は、
正確に SCRAMBLE_LENGTH の長さで、NULL で終了します。
hash_stage2 hex2octet デコードされたデータベースエントリ
すべてのパラメータは IN です。

戻り値
0 パスワードは正しいです
!0 パスワードが無効です
*/

マイブール
check_scramble(const uchar *scramble_arg、const char *message、
定数uint8 *hash_stage2)
{
SHA1_CONTEXT sha1_コンテキスト;
uint8 buf[SHA1_HASH_SIZE];
uint8 ハッシュステージ2再保証[SHA1_HASH_SIZE];

mysql_sha1_reset(&sha1_context);
/* スクランブルを暗号化するためのキーを作成する */
mysql_sha1_input(&sha1_context、(const uint8 *) メッセージ、SCRAMBLE_LENGTH);
mysql_sha1_input(&sha1_context、hash_stage2、SHA1_HASH_SIZE);
mysql_sha1_result(&sha1_context, バッファ);
/* 暗号化スクランブル */
my_crypt((char *) buf, buf, scramble_arg, SCRAMBLE_LENGTH);
/* buf には hash_stage1 が含まれているはずなので、hash_stage2 を取得できます */
mysql_sha1_reset(&sha1_context);
mysql_sha1_input(&sha1_context, buf, SHA1_HASH_SIZE);
mysql_sha1_result(&sha1_context、hash_stage2_reassured);
memcmp(hash_stage2、hash_stage2_reassured、SHA1_HASH_SIZE) を返します。
}

memcmp の戻り値は実際には int であり、my_bool は実際には char です。その後、int を char に変換すると、切り捨てが発生する可能性があります。例えば、memcmp は 0×200 を返しますが、これは切り捨て後に 0 になり、check_scramble 関数の呼び出し元は「パスワードは正しい」と誤って認識します。

しかし、一般的に言えば、memcmpの戻り値は[127,-128]の範囲内です。 glibc の SSE 最適化コードの場合はそうではありません。したがって、このバグは特定のコンパイル環境でのみ発生します。つまり、MySQL がコンパイルされ、-fno-builtin が追加され、使用される glibc が SSE 最適化されている場合です (通常、システム独自の glibc の場合)。ここで言及されている glibc は Linux の glibc を指します。FreeBSD の libc は影響を受けません。

一般的に、このバグは非常に深刻です。MySQL でこのようなバグが最後に発生したのは、3.23/4.0 時代でした。

オリジナルリンク: http://www.udpwork.com/redirect/7463

元のタイトル: MySQL 認証の脆弱性は 5.5.24 にアップグレードすると修正される可能性があります

キーワード: MySQL、アイデンティティ、認証、脆弱性、アップグレード、5.5.24、修正可能、私は今、ウェブマスター、ウェブサイト、ウェブサイトのプロモーション、お金を稼ぐ

<<:  ポジショニング、製品、マーケティングは、Web サイト運営者が無視できない 3 つの要素です。

>>:  リベートの混乱:野蛮な成長の下での致命的な誘惑

推薦する

Duowanゲームユーザー800万人分のデータが漏洩し、多くのゲームサイトが攻撃を受けたと報じられている

写真はDuowan.comの漏洩したユーザー名とパスワードですネットユーザーはデータパケットのスクリ...

企業はクラウドコスト最適化のパラドックスをどのように解決すべきでしょうか?

「クラウドのコスト、1兆ドルのパラドックス」と題された最近の分析が大きな注目を集めています。この記事...

PythonでSaga分散トランザクションを簡単に完了する

[[422283]]銀行間送金業務は、典型的な分散型トランザクションのシナリオです。 A が銀行間で...

「強力なコードと自由な創造性」 - NetEase Cloudの全国大学MINI開発チャレンジチーム募集開始

4月18日、「強力なコードと自由な創造性」をテーマに、NetEase傘下の通信・動画クラウドサービス...

インターネットの10年の歴史におけるO2Oプロセスは、現在第3段階に入っています。

O2Oの4つの段階を詳しく見ていくと、各段階のモデルの発展は、第1段階はネットワーク、第2段階はリソ...

事例 - Joyo と Dangdang が検索エンジンを使用して製品を宣伝する方法

この記事では、主に、2 大 B2C ウェブサイトである Joyo と Dangdang が検索エンジ...

Bステーションの商業化は深海に突入

Bilibiliの業績は上昇傾向にあります。最近発表された財務報告によると、第4四半期の業績は予想を...

OneDNS: SaaS ベースの DNS セキュリティ サービスで企業の第一防衛線を構築

リモート オフィスやブランチ オフィスのシナリオの増加、およびクラウド コンピューティングなどの新し...

ビジネスを沈没させるクラウドの10の間違い

楽観主義者は「太陽はいつも雲の上にある」と言うのが好きです。彼らが言及していないのは、雲の下には強風...

ブランドマーケティングプロモーション:より良い戦略を生み出すには?

多くの場合、人は前向きに考える傾向があるため、考えた結果が似たようなものになることが多く、ユニークな...

アマゾン ウェブ サービスは、文部科学省の需給マッチング雇用・教育プロジェクトに選ばれ、クラウド人材の育成と科学研究の進歩を継続的に支援します。

アマゾン ウェブ サービスは11月3日、教育部大学学生局の需給マッチング就職教育プロジェクト第2期に...

最新の! 2019年中国のデジタルユーザー成長行動の年次分析

2019年、モバイルインターネットユーザー数は10億人を突破しました。トラフィック配当がピークを迎え...

JD.com の商品一覧ページのユーザー エクスペリエンスとマーケティング手法の簡単な分析 (パート 2)

昨日の「JD.comの商品一覧ページのユーザーエクスペリエンスとマーケティング手法の簡単な分析(パー...

vmiss の最も安価な「中国 - 香港 - 国際回線」VPS をレビューします。年間 10 ドルで、「netflix\spotify\steam currency\chatgpt」のロックを解除できます。

vmiss は長年香港 VPS を提供してきました。デフォルトは中国本土向けに最適化された「中国-香...