PDFファイルの処理に使われるソフトウェア「Ghostscript」に、深刻な脆弱性が発見された。細工したPDFファイルを処理させることで、リモートコード実行(RCE)が可能になる恐れがある。脆弱性の深刻度は「緊急(Critical)」で、WordPressをはじめ、Ghostscriptを利用するオンラインシステムに影響する可能性がある。

Bleeping Computerが10月13日(米国時間)、「Ghostscript flaw lets hackers hijack servers via PDF uploads」において報じた。

攻撃者は細工したPDFファイルを通じて、リモートコード実行(RCE: Remote Code Execution)が可能とされる。脆弱性を発見したWordfenceによると、WordPressをはじめとしたGhostscriptを利用するオンラインシステムに影響する可能性があるという。

CVSSスコアは9.8、WordPressにも影響の可能性

GhostscriptはPostScriptやPDFファイルの変換機能を持つソフトウェアだ。画像に変換するほか、プレビュー用のサムネイル作成や、埋め込み画像の圧縮、不要なフォントデータの削除などに使われる。Bleeping Computerによると、WordPressのPHP Imagick拡張機能がImageMagickを介して使用するという。

脆弱性は8月23日に発見され、「CVE-2026-39919」として追跡されている。ヒープベースのバッファオーバーフローの脆弱性で、特殊な画像を含むPDFファイルを処理させることで、メモリ破壊を引き起こし、任意のコードを実行する可能性がある。

脆弱性のCVSS v3.1のスコアは9.8で、深刻度は緊急(Critical)と評価されている。サーバ内でGhostscriptを使用している場合、外部からPDFファイルを送信することで、サーバ内部への侵入や乗っ取りに悪用される恐れがある。

コード実行に成功した環境も、攻撃の再現性には課題

問題を引き起こすのは、JPEG 2000画像を含むPDFファイルだ。Ghostscriptがファイル内の画像を処理する際、ビット深度の低いサンプルや、画像構成要素ごとに異なる解像度を適切に処理できないことで引き起こされる。Wordfenceの研究者はArgusを使って2種類のエクスプロイトを開発し、条件が整えば攻撃に成功することを明らかにした。

ただし、攻撃の成否は実行環境に左右される。研究者が構築したLinuxパッケージを対象にした検証環境では、エクスプロイトを計1万240回実行してもコードの実行には至らなかった。一方、専用に構築したテストサーバーではコード実行に成功した。PDFのフォント、言語設定、フォント構成、基幹システムライブラリの1つを変更すると成功したが、100%の再現性は得られていない。

修正版のGhostscript 10.08.0を公開、更新できない場合の対策は?

脆弱性はGhostscript 10.08.0より前のバージョンに存在する。Artifexは9月8日、修正版となるバージョン10.08.0を公開した。

ただし、修正は古いバージョンにもバックポートされており、バージョン10.08.0未満でも修正を含む可能性がある。利用者は各ディストリビューターが公開している変更履歴を確認し、パッチを適用した修正バージョンにアップデートする必要がある。

WordPressの管理者は、ホスティング事業者を通じてGhostscriptの更新状況を確認し、10.08.0以降、または修正を適用したバージョンへ移行することが推奨される。Docker環境では、修正済みのベースイメージを使ってイメージを再構築し、再配備する。更新できない場合は、PDFアップロードを遮断するか、ImageMagickによるPDF描画を無効にするなど、GhostscriptへPDFファイルが到達しないように対策することが望まれる。