Ghostscript PDF Lib の深刻な RCE 脆弱性 CVE-2023-3664 が FIX

Critical RCE found in popular Ghostscript open-source PDF library

2023/07/12 BleepingComputer — Linux で広く使用されている PostScript 言語であり、PDF ファイルのオープンソース・インタープリタである Ghostscript で、深刻なリモートコード実行の脆弱性が発見された。この脆弱性 CVE-2023-3664 (CVSS:9.8) は、3週間前にリリースされた最新バージョンである 10.01.2 以前の、Ghostscript 全バージョンに影響をおよぼす。この脆弱性の PoC エクスプロイトを作成した、Kroll の研究者である G. Glass と D. Truman によると、悪意のある特別な細工が施されたファイルを開くと、コードが実行される可能性があるとのことだ。


Ghostscriptは、数多くの Linux ディストリビューションにデフォルトでインストールされており、LibreOffice/GIMP/Inkscape/Scribus/ImageMagick/CUPS 印刷システムなどのソフトウェアで使用されている。したがって、脆弱性 CVE-2023-3664 が誘発させる機会は豊富だと言わざるを得ない。

Kroll は、Ghostscript の Windows 移植版を使用している場合においても、この問題は影響を及ぼすとコメントしている。

Ghostscript の欠陥

脆弱性に CVE-2023-3664 には、OS のパイプに関連している。パイプは、あるアプリケーションの出力を、別のアプリケーションの入力へと受け渡すことで、異なるアプリケーション間でのデータ交換を可能にする。

この問題は Ghostscript の “gp_file_name_reduce()” 関数に起因しており、この関数は複数のパスを受け取り、効率化のために相対パス参照を削除することで、それらを結合し単純化するように見える。

しかし、特別に細工されたパスが、この脆弱な関数に与えられると、 予期せぬ結果を返し、検証メカニズムを上書きして悪用される可能性が生じる。

さらに Ghostscript では、ファイルを開こうとすると “gp_validate_path” という別の関数が使用され、その場所が安全かどうかをチェックする。

しかし、”gp_validate_path” によるチェックが行われる前に、”gp_file_name_reduce()” は場所に関する詳細を変更してしまう。したがって、この抜け穴を悪用する攻撃者は、Ghostscript が立ち入り禁止としている場所にあるべきファイルを、容易に操作できてしまう。

Kroll の研究者たちは、Ghostscript を使用するアプリケーションで EPS (Embedded Postscript) ファイルを開くと起動するという、PoC エクスプロイトを作成した。

以下のデモビデオでは、Windows 上の Inkscape により、電卓を開いたり、ユーザーにダイアログを表示したりするなどの、アクションを実行する悪用例が紹介されている。


Linux ユーザーに対しては、ディストリビューションのパッケージ・マネージャを使用して、Ghostscript の最新バージョンである 10.01.2 へのアップグレードが推奨される。最新の Ghostscript がディストリビューションのソフトウェア・チャネルで提供されていない場合には、ソースコードからコンパイルが推奨される。

残念ながら、Ghostscript の移植版を使用する Windows 上のオープンソース・ソフトウェアは、最新バージョンへの移行に多くの時間を必要とする。したがって、Windows へのインストールには十分な注意が必要である。

Kroll の GitHub リポジトリでは、CVE-2023-3664 を検出するための Sigma ルールが共有されている。

この、Ghostscript の脆弱性 CVE-2023-3664 ですが、最適なものがダウンロードできない場合には、ソースコードからコンパイルが推奨されるというほど、深刻な状況のようです。ご利用の方は、ご注意ください。