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 つの要素です。

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

推薦する

Gcr、Quay、DockerHub イメージのダウンロードの問題を完全に解決します。

[[382055]] この記事は、Michelangelo Yang 氏が執筆した WeChat 公...

soladrive-35 USD/AtomD525/4 GB RAM/500 GB HDD/10 TB データ転送

次回の特別価格マネージド サーバーのご紹介: 完全マネージド サーバー、応答時間 10 ~ 15 分...

cmivpsはどうですか?香港CN2+BGPシリーズVPSの広帯域化を簡単に評価

cmivps の香港 VPS のデフォルト設定は中国本土最適化ですが、私が使用した多くのネットワーク...

Confluent がクラウドアップデートでイベントデータストリームを保護

Confluent の 2022 年第 2 四半期のクラウド アップデートが利用可能になり、イベント...

再開中です! Baidu VR製品+テクノロジーの二重サポートで企業のオンラインマーケティングのアップグレードを促進

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス新型コロナウイルス肺炎の...

データセンター管理者が直面するさまざまな仮想化テクノロジーの選択方法

すべての破壊的技術と同様に、サーバー仮想化は静かに登場し、その後爆発的に普及し、最終的にはエネルギー...

マーケティングテクニック - 「バンドル販売」についての簡単な説明

最近、「No Man's Land」という映画が公開されました。皆さんはご覧になったかどうか...

5省庁:ビットコインは通貨と同じ法的地位を持たないため、マネーロンダリングに注意

[要約] 中国人民銀行と他の 5 つの省庁は最近、「ビットコインのリスク防止に関する通知」を発行し、...

人工知能とクラウド:仮想世界における完璧な組み合わせ!

クラウド コンピューティングと人工知能は急速に進歩していますが、デジタル変革を推進しているのは主にそ...

まとめ: アメリカの優れたVPSの推奨事項、安価または低価格、優れたアフターサービス

「アメリカのVPS」に関して、「Host Cat」のネットユーザーは、VPSの速度、VPSの安定性、...

百度百科事典ランキング神話の独占暴露

まず、質問させてください。中国で最高の SEO は誰だと思いますか? 答えは Fu Wei でも L...

クリックベイトを使うべきか、それともタイトルの自然な最適化に戻るべきかについての私の意見

タイトルは現在、コンテンツ構築において最も難しい部分ですが、同時に最も簡単な部分でもあります。難易度...

私の目から見たSEO - 人生の始まりを追うウサギ

SEO については、おそらく多くの人が聞いたことがあるでしょうが、それが何であるかを実際に知っている...

3大検索エンジンがサポートするURL正規化の最新ソリューション

コアヒント: Google、Yahoo、Microsoft は共同で、URL 正規化の問題を解決する...

ウェブ解析ハック: ビジネス目標を測定可能な活動に定義する

この記事は、Web 分析の第一人者である Eric T. Peterson 氏の著書「Web Sit...