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

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

推薦する

クラウドネイティブ時代の機会と課題: DevOps で打開する方法

クラウドネイティブ時代において、国内外の多くのクラウドベンダーが強力な技術的配当をリリースしています...

if-else のネストが深すぎますか?初心者でもマスターできるデザインパターンを教えます!

[[321098]]デザインモードも使用しません。多くの人は、ビジネス コードを書いていると考え、ロ...

今後1年間のクラウドコンピューティングの発展の予測と分析

企業はクラウド コンピューティングの利点をますます認識するようになっていますが、クラウド コンピュー...

世界のクラウドサービス支出は増加しており、中国のクラウドサービス発展の黄金期が到来しました。

クラウド サービスは、インターネット ベースの関連サービスを追加、使用、および対話するためのモデルで...

301 リダイレクトの 3 つの種類

Gutengseo はこれまで何度も 301 リダイレクトを行ってきましたが、種類はさまざまです。今...

orbitservers - 年間 5 ドル 128 MB メモリ/8 GB ハード ドライブ/125 GB トラフィック/ダラス/ニューヨーク

低価格の VPS ベンダーである orbitservers には、その年の 9 月に HostCat...

エッジコンピューティングの6つの特徴

1. エッジコンピューティングとは何ですか?エッジ コンピューティングとは、ネットワーク、コンピュー...

代替ウェブサイト最適化:「RSO」草の根ウェブマスターの皆さん、最適化しましたか?

タイトルに「RSO」とあるのを見て、きっとあなたはとても混乱するでしょう。あなたは「SEO」は聞いた...

ハッカーが百度のウェブサイトを改ざん、広西警察が容疑者を逮捕

中国新聞社、1月31日:記者らは最近、広西チワン族自治区北海市警察がサイバーハッカー攻撃事件の解決に...

中国情報通信研究院が分散クラウドとクラウドエッジ連携標準システムをリリース

現在、分散型クラウドおよびクラウドエッジ連携業界は急速な発展期にあり、関連する標準システムを早急に改...

モンスターはトラブル回避のためChinaHR.comを売却:売却も閉鎖もできない

ChinaHR.comが親会社であるMonsterによって売却されるというニュースが最近注目を集めて...

#香港サーバ# RFC:$109/E3-1240L v2/8gメモリ/1Tハードディスク/3ネットワーク直接接続

こちらが香港にある RFC の独立サーバーです: 香港SunnyVisionデータセンターは、中国本...

「カフカの神への道」 - パーティションとグループの消費モードを理解するための 3 つの図

[[355699]] 1 パーティション消費モードクライアント (任意の言語で記述) は、Kafka...

【6つの主要な基準】ウェブサイトのキーワードランキングの優位性を判断する

この段階では、ウェブサイトの最適化はユーザー開発とコンテンツ開発に関するものです。コンテンツ開発には...

AzzaVps-384M メモリ/10G SSD/無制限トラフィック/シカゴ

AzzVPS は、シカゴのデータセンターに接続された高速ブレード サーバーを備えたニュージーランドを...