マイクロソフト セキュリティ情報 MS10-069 の解析

MS10-069 - 重要Windows クライアント/サーバー ランタイム サブシステムの脆弱性により、特権が昇格される (2121546)
について解析を行いました。

          mov    eax,[L764FD46C]
          lea    ecx,[edi+edi]
          push    ecx
          add    eax,00300000h
          push    eax
          push    [L764FD558]
          call    [ntdll.dll!RtlAllocateHeap]

旧コード1(XPSP3)

          mov    eax,[L764FD46C]
          lea    ecx,[edi+edi+01h]
          push    ecx
          add    eax,00300000h
          push    eax
          push    [L764FD558]
          call    [ntdll.dll!RtlAllocateHeap]

新コード1(XPSP3)

 L764D5819:
          cmp    byte ptr [ebp+40h],00h
          jnz    L764D58B8
          mov    edi,[ebp+1Ch]
          mov    eax,[edi]
          shr    eax,1
          push    eax
          push    [L764FD46C]
          push    [L764FD558]
          call    [ntdll.dll!RtlAllocateHeap]
          cmp    eax,esi
          mov    [ebp+40h],eax
          jnz    L764D584B

旧コード2(XPSP3)

 L764D5819:
          cmp    byte ptr [ebp+40h],00h
          jnz    L764D58B5
          mov    edi,[ebp+1Ch]
          push    [edi]
          push    [L764FD46C]
          push    [L764FD558]
          call    [ntdll.dll!RtlAllocateHeap]
          cmp    eax,esi
          mov    [ebp+40h],eax
          jnz    L764D5848

新コード2(XPSP3)

どうもバッファ周りのバグみたいですね。

          mov    eax,[L5FFD7FA8]
          lea    ecx,[edi+edi]
          push    ecx
          mov    ecx,[L5FFD7FB4]
          add    ecx,00300000h
          push    ecx
          push    eax
          call    [ntdll.dll!RtlAllocateHeap]

オリジナルコード1(Win2000)

 L5FFAA9AE:
          cmp    byte ptr [ebp+40h],00h
          jnz    L5FFAAA4F
          mov    eax,[esi]
          mov    ecx,[L5FFD7FB4]
          mov    edx,[L5FFD7FA8]
          shr    eax,1
          push    eax
          push    ecx
          push    edx
          call    [ntdll.dll!RtlAllocateHeap]
          cmp    eax,edi
          mov    [ebp+40h],eax
          jnz    L5FFAA9DF

オリジナルコード2(Win2000)

Windows 2000にも該当コードがありました。

          lea    eax,[edi+edi+01h]
          push    eax
          mov    eax,[L5FFD7FB4]
          add    eax,00300000h
          push    eax
          nop
          mov    eax,[L5FFD7FA8]
          push    eax
          call    [ntdll.dll!RtlAllocateHeap]

修正コード1(Win2000)

 L5FFAA9AE:
          cmp    byte ptr [ebp+40h],00h
          jnz    L5FFAAA4F
          mov    eax,[esi]
          mov    ecx,[L5FFD7FB4]
          mov    edx,[L5FFD7FA8]
          mov    eax,eax
          push    eax
          push    ecx
          push    edx
          call    [ntdll.dll!RtlAllocateHeap]
          cmp    eax,edi
          mov    [ebp+40h],eax
          jnz    L5FFAA9DF

修正コード2(Win2000)

参考までに、ベースにしたのは、 winsrv.dll 5.0.2195.7148 です。
なお、セキュリティパッチは、Windows Legacy Update
ら入手可能です。

関連記事:
9月の Windows Update とWindows 2000/XP SP2

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です