幽霊に扮したタキシード
画像: Bing Create

Linux で広く使用されている PostScript 言語および PDF ファイル用のオープンソース インタプリタである Ghostscript に、重大度のリモート コード実行の欠陥に対して脆弱であることが判明しました。

この欠陥はCVE-2023-3664として追跡されており、CVSS v3 評価は 9.8 で、3 週間前にリリースされた利用可能な最新バージョンである 10.01.2 より前のすべてのバージョンの Ghostscript に影響します。

この脆弱性の概念実証 (PoC) エクスプロイトを開発したKroll のアナリスト、G. Glass 氏と D. Truman 氏によると、特別に細工された悪意のあるファイルを開くとコードが実行される可能性があります。

Ghostscript が多数の Linux ディストリビューションにデフォルトでインストールされ、LibreOffice、GIMP、Inkscape、Scribus、ImageMagick、CUPS 印刷システムなどのソフトウェアで使用されていることを考慮すると、ほとんどの場合、CVE-2023-3664 を引き起こす機会は豊富にあります。

クロール氏はまた、Windows 上のオープンソース アプリが Ghostscript のポートを使用している場合、この問題はそれらのアプリにも影響を与えるとコメントしています。

Ghostscript の欠陥

CVE-2023-3664 の欠陥は OS パイプに関連しており、これにより、異なるアプリケーションが出力をあるアプリケーションから別のアプリケーションに入力として渡すことでデータを交換できるようになります。

この問題は、Ghostscript の「gp_file_name_reduce()」関数によって発生します。この関数は複数のパスを取得し、効率化のために相対パス参照を削除することでそれらを結合および簡素化しているように見えます。

ただし、特別に作成されたパスが脆弱な関数に与えられると、予期しない結果が返され、検証メカニズムがオーバーライドされ、悪用される可能性があります。

さらに、Ghostscript がファイルを開こうとすると、「gp_validate_path」と呼ばれる別の関数を使用して、ファイルの場所が安全かどうかを確認します。

ただし、この脆弱な関数は 2 番目の関数のチェック前に場所の詳細を変更するため、攻撃者が抜け穴を悪用して、立ち入り禁止であるべき場所にあるファイルを Ghostscript に強制的に処理させることは簡単です。

Kroll のアナリストは、Ghostscript を使用してアプリケーション上で EPS (Embedded Postscript) ファイルを開くとトリガーされる PoC を作成しました。

次のデモ ビデオでは、研究者らが Windows 上の Inkscape でエクスプロイトを紹介し、電卓を開く、ユーザーにダイアログを表示するなどのアクションを実行します。

Linux ユーザーは、ディストリビューションのパッケージ マネージャーを使用して、Ghostscript の最新バージョン 10.01.2 にアップグレードすることをお勧めします。

最新の Ghostscript がディストリビューションのソフトウェア チャネルでまだ利用可能になっていない場合は、 ソース コードからコンパイルすることをお勧めします。

残念ながら、Ghostscript のポートを使用する Windows 上のオープンソース ソフトウェアでは、当然のことながら、ツールの最新バージョンに移行するのにさらに時間がかかります。したがって、Windows へのインストールには特に注意することをお勧めします。

CVE-2023-3664 の検出を支援するために、Kroll はこの GitHub リポジトリで Sigma ルールを共有しました。