Kebijakan keamanan ImageMagick 'PDF' memblokir konversi


176

Kebijakan keamanan Imagemagick tampaknya tidak mengizinkan saya melakukan konversi ini dari pdf ke png. Mengubah ekstensi lain tampaknya berfungsi, tidak hanya dari pdf. Saya belum mengubah pengaturan imagemagick sejak saya menginstalnya ... Saya menggunakan Arch Linux, jika OS itu penting.

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.

Jawaban:


213

Yah, aku menambahkan

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

sebelum </policymap>di /etc/ImageMagick-7/policy.xmldan yang membuatnya bekerja lagi, tapi tidak yakin tentang implikasi keamanan itu.


3
Saya percaya bahwa kebijakan PDF telah ditambahkan karena bug di Ghostscript, yang saya yakin sekarang telah diperbaiki. Jadi, jika Anda menggunakan Ghostscript saat ini, maka Anda harus memberi kebijakan ini hak baca-tulis.
fmw42

30
Saya menemukan garis <policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />dan hanya membatalkan komentar untuk membuatnya bekerja.
jakob-r

8
Kerentanan keamanan yang menyebabkan distribusi menerapkan kebijakan ini dirujuk di sini: kb.cert.org/vuls/id/332928
Jason Siefken

17
@ jakob-r: Saya kira Anda berkomentar ... ;-)
AstroFloyd


98

Seperti yang ditunjukkan dalam beberapa komentar, Anda perlu mengedit kebijakan ImageMagick di /etc/ImageMagick-7/policy.xml. Lebih khusus lagi, dalam ArchLinux pada saat penulisan (05/01/2019) baris berikut ini tidak ditulis:

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

Bungkus saja di antara <!--dan -->untuk mengomentarinya, dan konversi pdf akan berfungsi lagi.


1
pastikan ghostscript sudah diperbarui kb.cert.org/vuls/id/332928
ykay mengatakan Reinstate Monica

6
Apa gunanya fungsi ini? Untuk mencegah pengguna membuat PDF?
Penebusan Terbatas

6
Sebagian ya. Karena ImageMagick sering digunakan oleh situs web untuk memproses file yang diunggah - dan PDF adalah salah satu format file yang pada dasarnya dapat berisi kode yang dapat dieksekusi - siapa pun yang memiliki izin unggah dapat melakukan tugas apa pun yang dapat diakses oleh pengguna web Anda. Sama jika seseorang menipu Anda agar secara pribadi mengonversi PDF berbahaya ke format lain apa pun.
TwoD


25

Ini karena kerentanan keamanan yang telah dibahas dalam Ghostscript 9.24 ( sumber ). Jika Anda memiliki versi yang lebih baru, Anda tidak memerlukan solusi ini lagi. Di Ubuntu 19.10 dengan Ghostscript 6, ini berarti:

  1. Pastikan Anda memiliki Ghostscript ≥9.24:

    gs --version
    
  2. Jika ya, hapus saja seluruh bagian berikut dari /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" />
    

Hanya perbaikan yang bekerja untuk saya di Ubuntu 19.04 dengan gs 9.26.
Manuel

2
sed -i '/disable ghostscript format types/,+6d' /etc/ImageMagick-6/policy.xmlbekerja dengan baik untuk saya.
Richard Kiefer

1
Bekerja untuk Ubuntu 20.04
Alex K.

21

untuk saya di linux lengkung saya harus berkomentar:

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

Di sistem saya, ada dua file policy.xml: /etc/ImageMagick-6/policy.xmldan /etc/ImageMagick-7/policy.xml. Berhati-hatilah untuk mengedit yang benar!
SylvainB

4

Di Ubuntu 19.10, saya telah melakukan ini di /etc/ImageMagick-6/policy.xml

batalkan komentar ini

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

dan komentar ini

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

Setelah itu, perintah ini berfungsi tanpa kesalahan

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

0

Saya mengalami masalah ini dengan nextcloud yang gagal membuat thumbnail untuk file pdf.

Namun, tidak ada langkah yang disarankan untuk menyelesaikan masalah bagi saya.

Akhirnya saya menemukan alasannya: Jawaban yang diterima berhasil tetapi saya juga harus memulai kembali php-fpm setelah mengedit file policy.xml:

 sudo systemctl restart php7.2-fpm.service
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.