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.
T. Zack Crawford
sumber

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.

Stefan Seidel
sumber
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
1
Pastikan ghostscript diperbarui kb.cert.org/vuls/id/332928
ykay mengatakan Reinstate Monica
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.

Michele
sumber
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
28

Bagi saya pada sistem archlinux saya, saluran sudah tidak diomentari. Saya harus mengganti "tidak ada" dengan "baca | tulis" untuk membuatnya berfungsi.

kupu-kupu
sumber
pastikan ghostscript sudah diperbarui kb.cert.org/vuls/id/332928
ykay mengatakan Reinstate Monica
sama. Saya up to date btw.
yukashima huksay
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" />
    
tanius
sumber
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" />
soloturn
sumber
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 
slc66
sumber
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
derwiwie
sumber