ms10-054 の解析 をしてみた
Windows 2000でセキュリティパッチの出なかった MS10-054について、影響を受ける個所がどのくらいあるか、アセンブラレベルでパッチの差分解析をしてみました。
Fix1 整数バッファーオーバーフローの実装2
Windows XP SP3 ms10-054 0001E95D
Windows XP SP3 ms10-012 実装なし
Windows 2000 ms10-012 実装なし
→Fix3の影響を受ける
Fix2 KeBugCheckEx用のフラグ保存
Windows XP SP3 ms10-054 0001E99C
Windows XP SP3 ms10-012 0001E96A
Windows 2000 ms10-012 00018455
→恐らく影響なし
Fix3 整数バッファーオーバーフローチェック追加x2
Windows XP SP3 ms10-054 0001EC95
Windows XP SP3 ms10-012 0001EC62
Windows 2000 ms10-012 000185F1
→影響あり
Fix4 KeBugCheckEx用のチェック
Windows XP SP3 ms10-054 0001F1E9
Windows XP SP3 ms10-012 0001F159
Windows 2000 ms10-012 00018AC4
→恐らく影響なし
Fix5 IoCheckQuerySetVolumeInformationによる事前チェック
Windows XP SP3 ms10-054 00041027
Windows XP SP3 ms10-012 00040F2A
Windows 2000 ms10-012 0002A0BB
→影響あり
Fix5 IoCheckQuerySetVolumeInformationによる事前チェック
Windows XP SP3 ms10-054 000410F3
Windows XP SP3 ms10-012 00040FD3
Windows 2000 ms10-012 0002A12D
→影響あり
Fix6 SrvQueryOs2FeaListのバッファチェック
Windows XP SP3 ms10-054 000463BB
Windows XP SP3 ms10-012 0004623B
Windows 2000 ms10-012 実装なし
→影響なし
Fix7 IoCheckQuerySetVolumeInformationのチェック
Windows XP SP3 ms10-054 0004CCBF
Windows XP SP3 ms10-012 000464E2
Windows 2000 ms10-012 0003AE2E
→影響あり
Fix8 IoCheckQuerySetVolumeInformationのチェック強化
Windows XP SP3 ms10-054 00051DFA
Windows XP SP3 ms10-012 00051C52
Windows 2000 ms10-012 0003D9B0
→影響あり
で、差分解析してて気づいたんですが、
Windows 2000の 000234F0
Windows XP SP3 ms10-012の 0003CBC9
Windows XP SP3 ms10-054の 0003CCC9
に該当する箇所の整数バッファーオーバーフローに該当するチェックが甘いような気がします。
ただ、XPのバイナリにはデバッグ用のコードが大量に含まれてるのに対して、何故か Windows 2000のコードはコンパクトになっているので、修正するのはちょっと難しそうです。
500バイト位フリーエリアがあればパッチ当てれそうなんですけどね。
関連サイト:
マイクロソフト セキュリティ情報 MS10-054 - 緊急 : SMB サーバーの脆弱性により、リモートでコードが実行される (982214)
Comments