Hatena::ブログ(Diary)

scalaとか・・・ このページをアンテナに追加 RSSフィード Twitter

2015-03-23

Scala標準ライブラリのscala.xml.XML.loadStringなどを直接使うとXXE(XML External Entity)という脆弱性になるので気をつけましょう

| 11:28 | Scala標準ライブラリのscala.xml.XML.loadStringなどを直接使うとXXE(XML External Entity)という脆弱性になるので気をつけましょうを含むブックマーク Scala標準ライブラリのscala.xml.XML.loadStringなどを直接使うとXXE(XML External Entity)という脆弱性になるので気をつけましょうのブックマークコメント

liftというweb frameworkのメーリングリストで「ちょっとセキュリティの問題見つかってリリースしたから、アップデートしてくれ」というのが2015/3/16 (月曜)頃に流れてくる

https://groups.google.com/d/topic/liftweb/NSXpg778Oos/discussion

脆弱性の詳細はすぐには明かされなかった。つまり深刻なの?lift以外にも影響あるの?(それを匂わせるような書き方)

金曜くらいには発表するとある。わざとgithubにも該当のtagはpushされてないようだ

つい先ほど「詳細マダー?」「DPPがblog書いたらしいよ」

http://blog.goodstuff.im/lift_xxe_vulnerability

というわけで、詳細でました。XXEググると、日本語だと、(わりと古いけど)以下のblogが詳しくわかりやすかったです

XMLをparseするアプリのセキュリティ

おそらくloadStringだけじゃなく、loadとか似たようなメソッド全部ですね。

で、play framework2だと2.2.0以降大丈夫っぽいですが、2.1.xは危ないかも?(以下のコミット参照)

https://github.com/playframework/playframework/commit/dc94b943ee5dc

https://github.com/playframework/playframework/commit/8564706a25036


脆弱性対策としては、DPPも言ってるように、上記のコミットのplayのコード真似しましょう。(でいいのかな?)

liftでの該当コミット

で、その他は

その他、独自にscala.xml.XMLの「loadほげほげメソッド」を(外部の信用出来ないかもしれない)箇所からxml読み込む方法として使用してる場合は、きちんと対策しましょう。


Scala標準ライブラリ側でも(別メソッド用意とかで?)対策するのだろうか

https://github.com/scala/scala-xml/issues/17

*1:あくまでも適当なので、あまり信用しないでください

トラックバック - http://d.hatena.ne.jp/xuwei/20150323/1427077733