ファイルを開くときにコードが実行される OpenOffice の脆弱性

Apache OpenOffice オフィス スイートで、特別に設計された DBF 形式のファイルを開くときにコードが実行される可能性がある脆弱性 (CVE-2021-33035) が確認されました。 この問題を発見した研究者は、Windows プラットフォーム向けに有効なエクスプロイトを作成することについて警告しました。 脆弱性修正は現在、プロジェクト リポジトリ内のパッチの形式でのみ利用可能であり、OpenOffice 4.1.11 のテスト ビルドに含まれています。 安定版ブランチの更新はまだありません。

この問題は、OpenOffice がフィールドの実際のデータ型が一致するかどうかを確認せずに、DBF ファイルのヘッダーにある fieldLength および fieldType の値に依存してメモリを割り当てることが原因で発生します。 攻撃を実行するには、fieldType 値に INTEGER 型を指定できますが、より大きなデータを配置し、INTEGER 型のデータのサイズに対応しない fieldLength 値を指定すると、データの末尾が発生します。割り当てられたバッファを超えて書き込まれているフィールドから。 バッファ オーバーフローを制御した結果、研究者は関数からのリターン ポインタを再定義し、リターン指向プログラミング手法 (ROP - リターン指向プログラミング) を使用してコードを実行することができました。

ROP 手法を使用する場合、攻撃者は自分のコードをメモリに配置しようとせず、ロードされたライブラリですでに利用可能な機械命令の一部を操作し、コントロールリターン命令で終わります (通常、これらはライブラリ関数の終わりです)。 。 このエクスプロイトの作業は、結局のところ、同様のブロック (「ガジェット」) への一連の呼び出しを構築して、目的の機能を取得することになります。 OpenOffice エクスプロイトで使用されたガジェットは、OpenOffice で使用される libxml2 ライブラリのコードでした。OpenOffice 自体とは異なり、DEP (データ実行防止) および ASLR (アドレス空間レイアウトのランダム化) 保護メカニズムなしでコンパイルされました。

OpenOffice 開発者には 4 月 30 日にこの問題が通知され、その後、この脆弱性の一般公開は 18 月 4.1.11 日に予定されていました。 安定版ブランチへの更新が予定日までに完了しなかったため、研究者は詳細の公開を2021月38646日に延期したが、OpenOffice開発者はこの日までにリリースXNUMXを作成できなかった。 同じ調査中に、Microsoft Office Access の DBF 形式サポート コード (CVE-XNUMX–XNUMX) で同様の脆弱性が特定されたことは注目に値します。詳細は後で公開されます。 LibreOfficeでは問題は見つかりませんでした。

出所: オープンネット.ru

コメントを追加します