なぜかIE6SP1に残っている、未チェックのバッファーのセキュリティーホール
MSNのサイトを見ているとIEがクラッシュするという報告を頂いたので、調べてみたところ、IE6SP3では直っている、未チェックのバッファーのセキュリティーホールがIE6SP1では直ってないことがわかりました。
問題になってるのはこのコード
call SUB_L63720B25 mov ecx,[esp+04h] mov edx,[ecx+04h] and edx,0000001Fh movzx edx,[edx+L63588780] shl edx,02h sub ecx,edx mov ecx,[ecx] shl ecx,05h add ecx,[eax+08h] mov eax,[esp+08h] mov edx,[ecx+0Ch] mov [eax],edx mov edx,[ecx+10h] add edx,[ecx+04h] mov [eax+04h],edx retn 0008h |
L63720B25からのかえり値が 0だった場合の処理や shl ecx,5でオーバーフローしたときの処理がないのだ。(赤字がオーバーフローが起こる可能性がある場所)
参考までに、これがIE6SP3のコード
SUB_L7E5A9EFB: mov edi,edi push ebp mov ebp,esp push esi push edi call SUB_L7E5A9CDA mov edx,[ebp+08h] mov esi,[edx+04h] mov ecx,esi and ecx,0000001Fh movzx ecx,[ecx+L7E391C10] shl ecx,02h mov edi,edx sub edi,ecx test eax,eax mov ecx,[edi] jz L7E5A9F62 test esi,00100000h mov esi,[edx+24h] jz L7E5A9F34 mov esi,[esi+04h] L7E5A9F34: cmp eax,esi jnz L7E5A9F62 test ecx,ecx jl L7E5A9F62 mov esi,[eax+04h] shr esi,02h cmp ecx,esi jge L7E5A9F62 shl ecx,05h add ecx,[eax+08h] cmp [ecx+18h],edx jnz L7E5A9F62 mov edx,[ecx+0Ch] mov eax,[ebp+0Ch] mov [eax],edx mov edx,[ecx+10h] add edx,[ecx+04h] mov [eax+04h],edx L7E5A9F62: pop edi pop esi pop ebp retn 0008h |
青字が、追加されてるチェックコードの個所
というわけで。MS11-003v4には修正済みコードを適用してみたよ
WLUからのダウンロードでどうぞ。
更新ファイルアップありがとうございました。
早速インストールしようとしたところ
Setup cannot update your Windows 2000 files
because the language installed on your system is different from the update language.
KB2482017 Setup Errorというダイアログがでて
インストールできませんでした。
英語版と日本語版2つアップしてるんですが、英語版ダウンロードしていませんか?
お恥ずかしいかぎりです。英語版をインストールしようとしてました。そこで、気を取り直して日本語版をインストールしたのですがやはり、エラーがでました。
AppName: iexplore.exe AppVer: 6.0.2800.1106
ModName: mshtml.dll ModVer: 6.0.2800.1663
Offset: 00258163
Exception Information
Code: 0xc0000005 Flags: 0x00000000
Record: 0x0000000000000000
Address: 0x00000000637d8163
エラー報告の内容を見ると各モジュールの情報が
Module 138まで、ならんでいて、とても書ききれませんでした。
ちょっと、ここからはうちの環境ではエラーが出なくなったので
確認が難しいのですが、MSNのどの記事を開いてもエラーが出ますか?
もし、エラーが出た時の ECXの値が表示されていたらお願いします
http://goo.gl/bfCFW
ちょっと、実験版つくってみたので試してみてください。
実験版を入れたら、エラーがでなくなりました。
あと、気づいた点は、いままで、MSNのニュースに
移動するときに、右側にCMがでていたところが、
その、コラムの場所が空白になりました。
これって、CMの表示部分がエラーを起こしていたということでしょうか?
もう一度、V4にしてから、エラーの報告をいたします。
実験版をFireFoxの画面とみくらべてみたところ、CMの部分がなくなったのではなくて、一番下に移動していました。どうやら、レイアウトの仕方が変わったようにみえます。
v4をいれて実験しました
ニュースのリンクはほぼすべて、落ちてしまいます。ほかの、リンクは、落ちないものもあり、
よく見比べると、
左側のコラムが1つのものが落ち、
左側のコラムが1つでも、そのコラムにタブがついている、レイアウトのものは落ちませんでした
Exception Information
Code: 0xc0000005 Flags: 0x00000000
Record: 0x0000000000000000
Address:0x00000000637d8163
Thread 1
Thread ID: 0x00000618
Context:
EDI: 0x00000750 ESI:0x77f88f08
EAX: 0x17d20000 EBX:0x0012af30
ECX: 0x00001000 EDX:0x00000000
EIP: 0x77f88f13 EBP:0x0012af38
SegCs: 0x00000023
> Address:0x00000000637d8163
>Thread 1
>EIP: 0x77f88f13 EBP:0x0012af38
エラーレポート参照するときは、
Thread 1 を出すのではなく、
Addressの部分と EIP の値が一致する Thread
を探して貼り付けるのがベストです|・ω・)
他の奴はまず関係ありません
とりあえず、実験版じゃないV5を公開しました
ご協力ありがとうございます
EIPのこと、御尤もと思い、今さながら、早速
もう一度調べてみたのですが、30スレッドが
あって、アドレスの初めの部分がすべて0x77f88
で始まっていていて、最後の3バイトだけが違う
だけで、エラーのアドレスを見つけることはできませんでした。
1 EIP:0x77f88f13
2 EIP:0x77f883a3
3 EIP:0x77f883a3
4 EIP:0x77f88af7
5 EIP:0x77f88f13
6 EIP:0x77f88f03
7 EIP:0x77f88f03
8 EIP:0x77f88b37
9 EIP:0x77f88af7
10 EIP:0x77f88f13
11 EIP:0x77f88f03
12 EIP:0x77f88f03
13 EIP:0x77f88f13
14 EIP:0x77f88f13
15 EIP:0x77f88f03
16 EIP:0x77f88f03
17 EIP:0x77f88f13
18 EIP:0x77f88f13
19 EIP:0x77f88f13
20 EIP:0x77f88f03
21 EIP:0x77f88af7
22 EIP:0x77f88af7
23 EIP:0x77f88af7
24 EIP:0x77f88af7
25 EIP:0x77f88f13
26 EIP:0x77f88f13
27 EIP:0x77f88f03
28 EIP:0x77f88f03
29 EIP:0x77f88f03
30 EIP:0x77f88f13
お役立てず申し訳ありませんでした。
V5にしたら、エラーがでなくなりました。
ありがとうございました。
それから、ご報告があります。
カーネルをV14bにしたら、GIMP2.6.12が起動できなくなっていました。v14aにもどしたら、起動できました。
ありがとうございます。
修正した、v14cリリースしました
ありがとうございます。さっそくV14cインストールしました。GIMPも起動できました。