2015-03-23
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が詳しくわかりやすかったです
おそらく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での該当コミット
- https://github.com/lift/framework/commit/fb6acf61e4c15fea
- https://github.com/lift/framework/commit/10f13cb0979a4566
↓
で、その他は
その他、独自にscala.xml.XMLの「loadほげほげメソッド」を(外部の信用出来ないかもしれない)箇所からxml読み込む方法として使用してる場合は、きちんと対策しましょう。
Scala標準ライブラリ側でも(別メソッド用意とかで?)対策するのだろうか
*1:あくまでも適当なので、あまり信用しないでください
- 28 http://t.co/R9egLRbd2i
- 5 http://t.co/MdvfSditXh
- 3 http://b.hatena.ne.jp/
- 2 http://t.co/jKyo3CMsIt
- 1 http://api.twitter.com/1/statuses/show/579832430158176257.json
- 1 http://b.hatena.ne.jp//entrylist?url=http:/sanzierogazo.blog129.fc2.com/?url=http://sanzierogazo.blog129.fc2.com/
- 1 http://b.hatena.ne.jp/?via=201002
- 1 http://b.hatena.ne.jp/entrylist
- 1 http://b.hatena.ne.jp/entrylist?url=http://www.slideshare.net/
- 1 http://ift.tt/1IicvvP