นโยบายการแปลง 'PDF' บล็อก ImageMagick ความปลอดภัย


176

นโยบายความปลอดภัยของ Imagemagick ดูเหมือนจะไม่อนุญาตให้ฉันทำการแปลงนี้จาก pdf เป็น png ดูเหมือนว่าการแปลงส่วนขยายอื่น ๆ ใช้งานได้ แต่ไม่ใช่จาก pdf ฉันไม่ได้เปลี่ยนการตั้งค่า imagemagick ใด ๆ ตั้งแต่ฉันติดตั้ง ... ฉันใช้ 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.

คำตอบ:


214

ฉันเพิ่ม

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

เพียงก่อนที่</policymap>ใน/etc/ImageMagick-7/policy.xmlและที่ทำให้มันทำงานอีกครั้ง แต่ไม่แน่ใจเกี่ยวกับความหมายของการรักษาความปลอดภัยที่


3
ฉันเชื่อว่านโยบาย PDF ถูกเพิ่มเนื่องจากข้อผิดพลาดใน Ghostscript ซึ่งฉันเชื่อว่าตอนนี้ได้รับการแก้ไขแล้ว ดังนั้นคุณจึงใช้ Ghostscript ปัจจุบันแล้วคุณควรให้นโยบายนี้อ่าน | เขียนสิทธิ์
fmw42

31
ฉันพบบรรทัด<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />และไม่ใส่เครื่องหมายข้อคิดเห็นเพื่อให้มันใช้งานได้
jakob-r

8
ช่องโหว่ด้านความปลอดภัยที่ทำให้เกิดการกระจายการปรับใช้นโยบายมีการอ้างอิงที่นี่: kb.cert.org/vuls/id/332928
Jason Siefken

17
@ jakob-r: ฉันคิดว่าคุณแสดงความคิดเห็นออก ... ;-)
AstroFloyd

1
ตรวจสอบให้แน่ใจ ghostscript ได้รับการอัพเดตkb.cert.org/vuls/id/332928
ykay พูดว่า Reinstate Monica

98

เป็นแหลมออกในความคิดเห็นบางอย่างที่คุณจำเป็นต้องแก้ไขนโยบายของ ImageMagick /etc/ImageMagick-7/policy.xmlใน โดยเฉพาะอย่างยิ่งใน ArchLinux ณ เวลาที่เขียน (05/01/2019) บรรทัดต่อไปนี้ไม่มีการใส่หมายเหตุ:

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

เพียงแค่ใส่ระหว่าง<!--และ-->เพื่อแสดงความคิดเห็นและการแปลงไฟล์ PDF ควรทำงานอีกครั้ง


1
ตรวจสอบให้แน่ใจ ghostscript นั้นทันสมัยแล้วkb.cert.org/vuls/id/332928
ykay พูดว่า Reinstate Monica

6
จุดประสงค์ของฟังก์ชั่นนี้คืออะไร? เพื่อป้องกันไม่ให้ผู้ใช้สร้าง PDF?
การชดใช้ จำกัด ใน

6
ใช่บางส่วน เนื่องจาก ImageMagick มักจะใช้เว็บไซต์ในการประมวลผลไฟล์ที่อัปโหลด - และ PDF เป็นหนึ่งในรูปแบบไฟล์ที่สามารถมีรหัสที่สามารถใช้งานได้ - ผู้ที่มีสิทธิ์ในการอัพโหลดสามารถดำเนินการใด ๆ ที่ผู้ใช้เว็บของคุณสามารถเข้าถึงได้ เช่นเดียวกันถ้ามีคนหลอกให้คุณแปลง PDF ที่เป็นอันตรายเป็นการส่วนตัวในรูปแบบอื่น ๆ
TwoD

28

สำหรับฉันในระบบ archlinux ของฉันบรรทัดก็ไม่ได้แสดงความคิดเห็น ฉันต้องแทนที่ "none" โดย "read | write" เพื่อให้มันใช้งานได้


ตรวจสอบให้แน่ใจ ghostscript นั้นทันสมัยแล้วkb.cert.org/vuls/id/332928
ykay พูดว่า Reinstate Monica

เหมือนกัน. ฉันเป็น btw ที่ทันสมัย
yukashima huksay

25

นี่เป็นเพราะช่องโหว่ด้านความปลอดภัยที่ได้รับการแก้ไขใน Ghostscript 9.24 ( ต้นฉบับ ) หากคุณมีเวอร์ชันที่ใหม่กว่าคุณไม่จำเป็นต้องแก้ไขปัญหานี้อีกต่อไป บน Ubuntu 19.10 พร้อม Ghostscript 6 หมายถึง:

  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

3
sed -i '/disable ghostscript format types/,+6d' /etc/ImageMagick-6/policy.xmlทำงานได้ดีสำหรับฉัน
Richard Kiefer

1
ทำงานกับ Ubuntu 20.04
Alex K.

21

สำหรับฉันใน linux arch ฉันต้องแสดงความคิดเห็น:

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

ในระบบของฉันมีสองไฟล์ policy.xml: และ/etc/ImageMagick-6/policy.xml /etc/ImageMagick-7/policy.xmlระวังที่จะแก้ไขสิ่งที่ถูกต้อง!
SylvainB

4

ใน Ubuntu 19.10 ฉันได้ทำสิ่งนี้ใน /etc/ImageMagick-6/policy.xml

uncomment นี้

<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

อย่างไรก็ตามขั้นตอนที่แนะนำไม่สามารถแก้ไขปัญหาให้ฉันได้

ในที่สุดฉันก็พบเหตุผล: คำตอบที่ยอมรับใช้งานได้ แต่ฉันต้องรีสตาร์ท php-fpm หลังจากแก้ไขไฟล์ policy.xml:

 sudo systemctl restart php7.2-fpm.service
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.