サイト上にPDFがある場合、
http://path/to/pdf/file.pdf#whatever_name_you_want=javascript:your_code_here
とアクセスすることで、スクリプトが実行されてしまうという問題。
Firefox 2.0 + Acrobat 7.0 で再現を確認。ちょっと凝ったスクリプトを実行させようとしたら Firefox が死んでしまったのでどこまでできるのか不明だけど他サイトに置いたスクリプトを読み込ませられたので、こりゃやばそう。
Acrobat 側の問題だとは思うけど放置しておけないので、手元の環境では、Content-Type: application/pdf ではなく、application/octet-stream を返すよう、以下のように Apache を設定してみた。とりあえず再現しなくなったようなのだが、これでいいのかどうか不安。
AddType application/octet-stream .pdf
IE でも起こるらしい(手元で再現できてない)。そうすると、前述の対策では「拡張子ではなく、内容によってファイルを開くこと」のせいでうまくいかない。
Content-Disposition: attachment;
をつけて返すことで回避できそう。前述のも含めるとこんな感じかな。
<Files "*.pdf"> Header set Content-Disposition: attachment ForceType application/octet-stream </Files>
これによると、Version 8.0.0 で修正されてるとのこと。早めにアップデートしておきましょう。って、7以下に対するアップデートはなし?
Adobe からのアドバイザリ。来週 7.0.9 を出すらしいけど、7でなければいけない理由がなければ、早めに8にアップグレードしてしまった方がいいでしょう。
昨年の7月27日に修正されていた問題が、JVNに挙がった。
これは、2006年7月26日に開発者に直接連絡、27日に修正され、開発者の承諾も得て31日にIPAに届け出たもの。しかし「開発者にて修正版が公開されている」ことから、不受理になった。その後 IPA や JPCERT/CC で様々な検討や調整をしたんだと思うけど、広く周知するためということでようやくJVNで公開になった。
5年前に一度ネットサーフレスキューさんに脆弱性の連絡をした際、素早く対応して頂いた経験があったので、この件を見つけた時どちらに先に連絡するか迷ったけど、先に開発者に連絡することにした。すぐに対策版が公開されたものの、JVNをうまく利用できず公開されるのが半年後になってしまい、よかったのか悪かったのか...
ただ昨年9月から、「自社製品に関する 脆弱性関連情報の届出」ということができるようになっているので、開発者に直接連絡した場合でもこれを使って周知することを提案するとよいでしょう。
_ ori [あけおめ、ことよろです〜♪]
_ うえひろ [あけましておめでとうございます! 今年もよろしくお願い致します。]
_ AzureStone [ *'``・* 。 | `*。 ,。∩パハ * + ( ゜∀゜..]