ImageMagickのセキュリティポリシー「PDF」による変換のブロック


176

Imagemagickのセキュリティポリシーでは、pdfからpngへのこの変換を実行できないようです。他の拡張機能の変換は、pdfからではなく、機能しているようです。インストールしてからimagemagickの設定を変更していません... OSが重要な場合は、Arch Linuxを使用しています。

user@machine $ convert -density 300 -depth 8 -quality 90 input.pdf output.png
convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
convert: no images defined `output.png' @ error/convert.c/ConvertImageCommand/3288.

回答:


212

まあ、私は追加しました

  <policy domain="coder" rights="read | write" pattern="PDF" />

直前</policymap>/etc/ImageMagick-7/policy.xml、それはそれはなく、必ずそのセキュリティへの影響について、再び働くことができます。


3
Ghostscriptのバグが原因でPDFポリシーが追加されたと思いますが、これは修正されたと思います。したがって、現在のGhostscriptを使用している場合は、このポリシーに読み取り|書き込み権限を付与する必要があります。
fmw42

30
私はその行を見つけ、<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />それを機能させるためにコメントを外しました。
jakob-r 2018

8
ディストリビューションがポリシーを実装する原因となったセキュリティの脆弱性は、ここで参照されています:kb.cert.org/vuls/id/332928
Jason Siefken

17
@ jakob-r:コメントアウトしたと思います... ;-)
AstroFloyd

1
ghostscriptが更新されていることを確認してくださいkb.cert.org/vuls/id/332928
ykayはモニカを

98

一部のコメントで指摘されているように、ImageMagickのポリシーをで編集する必要があります/etc/ImageMagick-7/policy.xml。特に、執筆時点(2019年5月1日)のArchLinuxでは、次の行のコメントは外されています。

<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />

ただ、間それをラップ<!--し、-->それをコメントすること、およびPDF変換が再び動作するはずです。


1
ghostscriptが最新であることを確認しますkb.cert.org/vuls/id/332928
ykayはモニカを

6
この機能のポイントは何ですか?ユーザーがPDFを作成できないようにするには?
限定的な償い

6
一部、はい。ImageMagickは多くの場合、アップロードされたファイルを処理するためにWebサイトで使用されます。PDFは、基本的に実行可能コードを含むことができるファイル形式の1つです。アップロード権限を持つユーザーは、Webユーザーがアクセスできるタスクを実行できます。誰かがあなたをだまして、悪意のあるPDFを他の形式に個人的に変換する場合も同じです。
TwoD 2019


25

これは、Ghostscript 9.24(ソース)で対処されているセキュリティの脆弱性が原因です。新しいバージョンを使用している場合、この回避策はもう必要ありません。Ghostscript 6を搭載したUbuntu 19.10では、これは次のことを意味します。

  1. Ghostscriptが9.24以上であることを確認します。

    gs --version
    
  2. はいの場合は、次のセクション全体をから削除して/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" />
    

Ubuntu 19.04とgs 9.26で機能した修正のみ。
ManuelTS

2
sed -i '/disable ghostscript format types/,+6d' /etc/ImageMagick-6/policy.xml私にとってはうまくいきました。
リチャードキーファー

1
Ubuntu 20.04
Alex K.

21

アーチLinuxで私のために私はコメントしなければなりませんでした:

  <policy domain="delegate" rights="none" pattern="gs" />

私のシステムでは、2つのpolicy.xmlファイルが/etc/ImageMagick-6/policy.xmlありました/etc/ImageMagick-7/policy.xml。正しいものを編集するように注意してください!
SylvainB

4

Ubuntu 19.10では、/ etc / ImageMagick-6 / policy.xmlでこれを行いました

これをコメント解除

<policy domain="module" rights="read | write" pattern="{PS,PDF,XPS}" />

これにコメントする

<!-- <policy domain="coder" rights="none" pattern="PDF" /> -->

その後、このコマンドはエラーなしで機能します

convert -thumbnail x300 -background white -alpha remove sample.pdf sample.png 

0

nextcloudでPDFファイルのサムネイルの作成に失敗するこの問題が発生していました。

ただし、推奨される手順のいずれも私にとって問題を解決しません。

最終的に私は理由を見つけました:受け入れられた回答は機能しましたが、policy.xmlファイルを編集した後、php-fpmも再起動する必要がありました:

 sudo systemctl restart php7.2-fpm.service
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.