1. atuyosi

    Posted

    atuyosi
Changes in title
+HomebrewのImageMagickとpolicy.xml (not authorized エラー)
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,45 @@
+ちょっとしたメモ書き。
+
+## 経緯
+
+ちょっと`convert`コマンドでPNGファイルをPDFにしたかっただけ。
+
+## 現象
+
+PNG形式のファイルをPDF形式に変換しようとすると以下のようエラーとなる。
+
+```
+$ convert image-001.png -units PixelsPerInch -density 72x72 output_001.pdf
+convert: not authorized `PDF' @ error/constitute.c/IsCoderAuthorized/408.
+```
+
+どうやら脆弱性対策の一環。不正な画像ファイルの変換時にGhostscriptのバグを突かれるとまずいという話。
+
+セキュリティ対策でGhostscriptを呼び出すタイプの拡張子が処理対象から外されている。
+
+[Ghostscript の -dSAFER オプションの脆弱性に関する注意喚起](https://www.jpcert.or.jp/at/2018/at180035.html)
+
+## 対処
+
+ImageMagickの設定ファイルのありかを特定、一時的に設定を変える。
+
+Homebrewでインストールしている関係で手元のマシンでは`policy.xml`は以下の場所。
+
+```
+ /usr/local/Cellar/imagemagick/7.0.8-11_1/etc/ImageMagick-7/policy.xml
+```
+
+`7.0.8-11_1`の部分はバージョン依存。
+
+このフィアルを**バックアップ**したうえで書き換える。
+
+```
+ <policy domain="coder" rights="none" pattern="{EPS,PS2,PS3,PS,PDF,XPS}" />
+```
+
+この行から`,PDF`という箇所を削除。
+
+## 注意
+
+作業が完了したら設定をもとに戻しておく。
+