Apple PDF Crasher - Apple製PDFレンダリングエンジンのDoS脆弱性

English 一般ユーザ向けの解説

問題の概要

Apple製のPDFレンダリングエンジンには、 細工されたPDFファイルを開くことでアプリケーションクラッシュを起こすDenial of Serviceの脆弱性が存在します。

対象

作り方

  1. ghostscriptのcidfmap.localにに以下の記述を追加します。これはgnuplotで出したEPS内で日本語を使うために必要です。 Fedoraで記述しているため、他のディストリビューションではパスが異なることがあります。
    /GothicBBB-Medium << /FileType /TrueType /Path (/usr/share/fonts/vlgothic/VL-Gothic-Regular.ttf) /SubfontID 0 /CSI [(Japan1) 2] >> ;
    /Ryumin-Light << /FileType /TrueType /Path (/usr/share/fonts/ipa-mincho/ipam.ttf) /SubfontID 0 /CSI [(Japan1) 4] >> ;
    
  2. gnuplotで日本語を含むepsを生成し、それをgraphicxパッケージでincludegraphicsし、platexとdvipdfmxを使ってPDFを生成するだけで問題が発生します。

報告

本脆弱性はIPAを通じて1年前に開発元に通知されましたが、開発元はこれを脆弱性と認めず未修正のままとなっています。 2015/1/9をもって起算日から1年が経過したため非公開依頼の取り下げを要求し、一般公開を行いました。

CVSS 2.0基本値による評価

Access VectorNetwork
Access ComplexityLow
AuthenticationNone
Confidentiality ImpactNone
Integrity ImpactNone
Availability ImpactComplete
Base Score7.8

回避策

PDF製作者はgnuplotを使う場合には日本語を含めない以外の回避策はありません。 PDF製作者はgnuplotで日本語を使う場合にはEPS形式を使用しないことで回避できます。 Mac OS Xのユーザーは問題のあるPDFを閲覧する場合にはGoogle Chromeなどで閲覧することで問題を回避できます。 iOSのChromeはクラッシュするため回避する方法は知られていません。

Exploit Code

クラッシュを引き起こすPDF
ソース

謝辞

nvsofts氏にはMAC OS X上での検証において多大なる支援を頂きました。

変更記録