BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 重大なREXML DoSの検出 - 修正としてMonkey Patchが利用可能

重大なREXML DoSの検出 - 修正としてMonkey Patchが利用可能

ブックマーク

XMLエンティティは、REXMLにおける新しいDoS脆弱性(リンク)の原因である。再帰的にネストされたエンティティを定義し、使用するドキュメントは、こうしたエンティティの過剰な拡張を招き、最終的にはアプリケーションを停止させる。

特にRailsは、その問題に対して弱い。着信XML要求の解析にREXMLを使用するからである。これはデフォルトで発生し、要求のドキュメントタイプ に依存しているので、ユーザによって提供されたXMLを自動的に処理する機能を使用不可にしない限りは、この脆弱性はすべてのRailsアプリケーション にとって危機となる。

今の段階では、1.8.6-p287、1.8.7-p72までのすべてのRubyバージョンおよびすべてのRuby 1.9.xで問題となる。提供されたサンプルXMLドキュメントの解析など、現在のJRuby 1.1.xのリリースでの試行もまた、結局OutOfMemoryErrorになる。(注:エンティティが拡張する場合にのみ、問題が発生する。つまり単に解析をするだけでは、問題にならない。エンティティを含んでいるテキストノードは、発生する問題でアクセスする必要がある)。

REXMLの修正が利用可能になるまでは、修正はmonkey patchとしてREXMLのドキュメントおよびエンティティクラスへ提供される。パッチは基本的に、拡張済みのエンティティ数を制限し(限度は構成可能)、その限界を越えると例外を投げる。

この脆弱性のセキュリティ勧告ページには、さまざまなバージョンのRailsを確実にロードするためには、どこにパッチを置くべきかを示した解説が記載されている(リンク)

原文はこちらです:http://www.infoq.com/news/2008/08/rexml-entity-explosion-dos-fix

この記事に星をつける

おすすめ度
スタイル

BT