2013年3月10日日曜日

サーブレットのgetRequestURI()が取扱い注意な件 - その3(CVE-2012-0077)

OracleからCritical Patch Updatesが出て1年以上経ち、そろそろ時効かと思いますので書いておきます。

サーブレットのgetRequestURI()が取扱い注意な件で書いた、URLのパス中にスクリプト等を仕込める問題ですが、例で上げたものはすべてApache Tomcatで確認しています。
当然これらはサーブレットエンジンの実装の問題であることが考えられるので、WebLogic、WebSphere、GlassFish等でも確認してみました。
その結果、一部バグと思われる動作をしたものもありましたが、ほぼすべてTomcatと同じ動きであることが確認できました。

ところでこれらの製品、管理用のアプリケーションが用意されていますが、当然同じサーブレットエンジン上で動いていることが予想されます。この問題はアプリケーションの作り方によって発生しますので、ひょっとしたらこれらの管理アプリが誤った使い方をしていてXSS等があるかもしれません。

Tomcatも含め、4つの製品で試したところWebLogicがまんまとこの問題にひっかかっていました。これがCVE-2012-0077(JVNDB-2012-000007)です。



まだPatchをあてていないところもあるかもしれないので、一応URLは伏せておきます(って画面から推測できますが)。onMouseOverでalert出すようにしたところ、いたるリンクで出てしまい結構うざかったです。

まだPatchをあてていないならすぐ対応しましょう。
 Oracle Critical Patch Update Advisory - January 2012