いくつかのバグについて、もう少し調べてみようと考えた・・・まず、Tipping PointはLarryが以前報告した脆弱性の1つについて公開し、これはMicrosoft Office Jet Database Engineのスタックオーバーフロー問題としてリストに挙げられた。面白いのは、スタックオーバーフローの部分ではなく、攻撃の場所そのものだ。Microsoftのために言っておくと、誰かがMDBファイルを私に寄越し、このファイルはスタックオーバーフローを引き起こすものだと言ったとしても、私ならおそらくそれが重要性の高いものだとは思わないだろう。確かにMDBを自分のシステムで実行することは、実行ファイルを走らせるのと同じようなものだが、今回の場合MDBは実際にはWord文書の中に埋め込まれていたのだ。非常に興味深い。
この一件は、他のJet Database Engineの問題も考えてみたいと思わせた。Tipping Pointが提供している詳細情報を以下に示す。
TPTI-08-04:Microsoft Office Jet Database Engineのカラム構文解析のスタックオーバーフロー脆弱性
CVE-2007-6026としても参照されている。
脆弱性の詳細:
この脆弱性は、遠隔の攻撃者が脆弱性を持つMicrosoft Officeで任意のコードを実行することを可能にする。この攻撃には、対象が悪意のあるJet DB Engineオブジェクトを含むOfficeファイルを開く必要がある。
この問題は、カラム構造体の解析処理の中に存在する。構造体のカラム数を指定するDWORDの値は信頼されている。この値が変更されると、そのスタックのインラインmemcpy処理がカラム名を読み込む際にオーバーフローを引き起こす可能性がある。通常、Jet DBの構造体は安全でないと考えられるMDBファイルの中で利用されている。しかし、それらのファイルをOffice Document(.doc)などの信頼できるフォーマットの中に埋め込むことは可能である。この問題によって、ログインしているユーザーのコンテクストでのリモートからのコード実行が可能になる。
2件目の再検討してみる価値のある脆弱性は、iDefenseが報告したもので、MS08-026として参照されている。これは、Wordが過度に大きなCSSセレクタの値を処理できてしまうために起きる問題で、その結果不特定のオブジェクトが破損し、Wordがすでに解放されたメモリ空間にアクセスできてしまうというものだ。この問題で私が一番面白いと感じるのは、この攻撃がWordのHTMLの処理を利用していることだ。これは攻撃目標としては興味深いものだ。考えてみて欲しい。ブラウザには多くの機能があるが、それがWordに入っているのだ。
iDefenseの詳しい説明を以下に示す。
Microsoftのメモリ破損脆弱性を遠隔から攻撃することにより、攻撃者はログインしているユーザーの特権で任意のコードを実行することができる。
この脆弱性は、WordがHTML文書のCSSのルールを処理する方法に存在する。CSSセレクタの数が特定の値以上になると、不特定のオブジェクトが破損し、Wordがすでに解放されたメモリ領域をアクセスできるようになる。
私はiDefenseがこの問題の脆弱性実証コードを作成したかどうかは知らないのだが、もしあれば見る価値のあるものだろうと思う。
この記事は海外CNET Networks発のニュースをシーネットネットワークスジャパン編集部が日本向けに編集したものです。海外CNET Networksの記事へ