Java をインストールするべからず

JDK/JRE 7u13 および 6u39 がリリースされた。

Oracle Java SE Critical Patch Update Advisory - February 2013
http://www.oracle.com/technetwork/topics/security/javacpufeb2013-1841061.html

脆弱性を修正したバージョンで、実際に悪用されている例が出てきてしまったので、2 月 19 日にリリースする予定だったものを前倒しで出したらしい。

今のところ脆弱性の詳しい内容は公開されていないが、一覧を見て、おやっと思った。


上記のページの一番下を見ると、CVE-2013-1489 という脆弱性を修正したことが記載されている。mitre.org で検索すると下記のページが案内される。

CVE-2013-1489
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-1489

どうやらこれは、Java コントロールパネルにあるセキュリティレベルの設定をすり抜けることができてしまう、という脆弱性らしい。
セキュリティレベルの設定というのは、JRE 7u10 で追加された機能で、署名なしのアプレットや WebStart アプリケーションに対して確認のダイアログを出すようにしたり、あるいはまったく動作しないように設定するためのものだ。Internet Explorer のインターネットオプションみたいに、スライダーを使って設定を変更することができる。
ところが、CVE-2013-1489 の説明によれば、このスライダーを一番上の Very High に設定しても、署名なしのアプレットや WebStart アプリケーションが、ダイアログすらなしで動かせてしまったらしい。つまり、せっかくのレベル設定に意味がなくなっていたことになる。
考えようによっては、これはレベル設定の機能を追加する前よりも状況が悪化している。「また Java脆弱性が見つかったらしいけど、うちはレベル設定で Very High にしてあるから大丈夫だよね☆」という人が出てくるからだ。
また、今回レベル設定をすり抜けられる脆弱性が見つかったことに対して、「これが最後だろう」と楽観視できる人がどれだけいるのかも気になる。今後も同じようなことが起きるかもしれない、という前提で考えたとき、クライアントサイドで Java をインストールするメリットとデメリットが釣り合うとは思えない。
もしかしたら、類似の技術 (ActiveX とか Flash とか) でも過去に似たようなことがあったかもしれない。セキュリティレベルの設定を導入したばかりの Java脆弱性が見つかったからと言って責めるのは不公平、と考える人も、もしかしたらいるのかもしれない。しかし、評価が公平かどうかはこの際どうでもいいし、10 年前と今とでは状況が違う。「10 年前の Flash と同じくらいなんだから十分だろ!」と言われても困る。

結論

JavaFX は流行らないと思う。