Imagemagick の gs pdf脆弱性対応の無効化

年末調整で控除証明書のpdfをjpgに変換しようとしたら、以下のようなエラーが出る:

% mogrify -format jpg -density 400 -quality 95 *.pdf
mogrify-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/421.

Ghostscriptの脆弱性があったため、pdfなどGhostscriptを使う変換を禁止したようだ。

ImageMagick security policy ‘PDF’ blocking conversion (Stack Overflow)によればgsの9.24で修正されているバグのようだ。(深刻な脆弱性に対処した「Ghostscript 9.24」が前倒しで公開 – アップデートを強く推奨 のことだろう。)

自分の環境だと

% gs --version                                             
9.54.0

なので脆弱性は修正されているはず。

この問題のWorkaroundはImagemagickのpolicyを変更することらしい。 さっそく編集する。

sudo jed /etc/ImageMagick-6/policy.xml

該当となる箇所をコメントアウトした。削除しても良いだろう。

  <!-- disable ghostscript format types -->
  <!-- <policy domain="coder" rights="none" pattern="PS" /> -->
  <!--   <policy domain="coder" rights="none" pattern="PS2" /> -->
  <!--   <policy domain="coder" rights="none" pattern="PS3" /> -->
  <!--   <policy domain="coder" rights="none" pattern="EPS" /> -->
  <!--   <policy domain="coder" rights="none" pattern="PDF" /> -->
  <!--   <policy domain="coder" rights="none" pattern="XPS" /> -->