「Microsoft Visual Studio」6.0に付属する旧版マスクエディットコントロール(Msmask32.ocx)に、スタックベースのバッファオーバーフローの脆弱性が見つかり、クラッシュさせる実証コードが公開されたとして、 海外のセキュリティポータルやセキュリティ機関などが今月13-14日付でアドバイザリを公開し、注意を呼び掛けている。
アドバイザリなどによると、脆弱性が存在するのは、Microsoft Visual Studio 6.0 の初期版に含まれる Msmask32.ocx(バージョン 6.0.81.69)およびそれ以前のバージョン。Visual Studio 6.0 SP3(Service Pack 3)以降で更新された「バージョン6.0.84.18」は影響を受けないという。
この脆弱性を突いてクラッシュさせる実証コードが出回っているが、適切な対策がとられてない状況で、ユーザーは自衛する必要がある。
Microsoft Visual Studioは、マイクロソフト社がソフトウェア開発者向けにリリースした開発ツールの詰め合わせ。Msmask32.ocx は、その Ver.6.0 に付属するActiveXコントロールで、特定の書式に従って入力させるテキストボックスの拡張版のような働きをする。
開発者は、Msmask32.ocxをアプリケーションと一緒に自由に配布できるが、Msmask32.ocxはOSには付属しておらず、単体での配布もない。有料・無料のソフトと一緒にインストールされるので、過去にインストールしたソフトにバグありの旧版が付属していた場合、問題が起こる可能性がある。
問題のある旧版のMsmask32.ocxは、SP3(Service Pack 3)以降のVisual Studioで作成された当該コントロールを含むソフトウェアをインストールすれば、最新版に更新される。しかし、旧版Msmask32.ocxをインストールしていて、その後更新版がインストールされなかったパソコンには、旧版がそのまま残っている。自分のパソコンに旧版が残っているかどうか確かめ、適切な対策をとることをお勧めしたい。
【旧版Msmask32.ocxが残っているかどうかの確認】
Msmask32.ocxがアプリケーションと一緒にインストールされると、「通常は」Windwos\System32 に、先のファイル名で格納される。脆弱性が解消されたとされるMsmask32.ocx6.0.84.18は、SP3で更新された現行バージョン。当該ファイルを右クリックしてプロパティを表示し、バージョン情報を見ると確認できる。
【旧版Msmask32.ocxが残っていた場合の対策】
次のいずれかの方法で回避することが可能だ。設定先はインターネットゾーン。
(1) Kill Bit を設定する
Msmask32.ocxのCLSIDは{C932BA85-4374-101B-A56C-00AA003668DC}
(2) 「アクティブスクリプト」を無効にする
IE7の場合、「セキュリティ」-「レベルのカスタマイズ」-「スクリプト」-「アクティブスクリプト」で、「無効にする」か「ダイアログを表示する」を選択。
(3) 「ActiveX コントロール」を無効にする
IE7の場合、「セキュリティ」-「レベルのカスタマイズ」-「ActiveX コントロールとプラグインの実行」で、「無効にする」か「ダイアログを表示する」を選択。
(4) 旧版を最新版に更新する
最新版のVisual Studio 6.0 SP6(Service Pack 6)のコントロールを一括インストールできるアプリケーションが無料配布されているので、それをインストールすると、旧型Msmask32.ocxを最新版に更新できる。たとえば、オンラインソフト配布サイト大手のベクターで、「6.0 SP6」をキーワード検索すると、「Visual Basic 6.0 SP6」用のランタイムセットやコントロールの詰め合わせがヒットする。Msmask32.ocxを含むこれらのアプリケーションをインストールすることで、旧版を更新できる。
(2008/08/20 ネットセキュリティニュース)
■Microsoft Visual Studio Masked Edit Control "Mask" Buffer Overflow(Secunia)
http://secunia.com/advisories/31498/
■Microsoft Visual Studio "Msmask32" Code Execution Issue(FrSIRT)
http://www.frsirt.com/english/advisories/2008/2380
■Microsoft Visual Studio 'Msmask32.ocx' ActiveX Control Remote Buffer Overflow Vulnerability(SecurityFocus)
http://www.securityfocus.com/bid/30674