Die ImageMagick-Sicherheitsrichtlinie 'PDF' blockiert die Konvertierung

174

Die Imagemagick-Sicherheitsrichtlinie scheint mir nicht zu erlauben, diese Konvertierung von pdf nach png durchzuführen. Das Konvertieren anderer Erweiterungen scheint zu funktionieren, nur nicht aus PDF. Ich habe seit der Installation keine Imagemagick-Einstellungen mehr geändert ... Ich verwende Arch Linux, wenn das Betriebssystem wichtig ist.

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
quelle

Antworten:

209

Nun, fügte ich hinzu

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

kurz vor </policymap>in /etc/ImageMagick-7/policy.xmlund das macht es wieder funktionieren, aber nicht sicher über die Sicherheitsauswirkungen davon.

Stefan Seidel
quelle
3
Ich glaube, dass die PDF-Richtlinie aufgrund eines Fehlers in Ghostscript hinzugefügt wurde, der meiner Meinung nach jetzt behoben wurde. Wenn Sie also das aktuelle Ghostscript verwenden, sollten Sie dieser Richtlinie Lese- und Schreibrechte geben.
FMW42
30
Ich habe die Zeile gefunden <policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />und sie nur kommentiert, damit sie funktioniert.
Jakob-R
8
Auf die Sicherheitslücke, die dazu geführt hat, dass Distributionen die Richtlinie implementiert haben, wird hier verwiesen
Jason Siefken
17
@ Jakob-r: Ich nehme an, Sie haben es
auskommentiert
1
Stellen
ykay sagt Reinstate Monica
97

Wie in einigen Kommentaren erwähnt, müssen Sie die Richtlinien von ImageMagick in bearbeiten /etc/ImageMagick-7/policy.xml. Insbesondere ist in ArchLinux zum Zeitpunkt des Schreibens (01.05.2019) die folgende Zeile nicht kommentiert:

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

Wickeln Sie es einfach zwischen <!--und -->um es zu kommentieren, und die PDF-Konvertierung sollte wieder funktionieren.

Michele
quelle
1
Stellen
Sie
6
Was ist der Sinn dieser Funktionalität? Um zu verhindern, dass Benutzer PDFs erstellen?
Begrenzte Versöhnung
6
Teilweise ja. Da ImageMagick häufig von Websites zur Verarbeitung hochgeladener Dateien verwendet wird - und PDF zu den Dateiformaten gehört, die grundsätzlich jeden ausführbaren Code enthalten können -, kann jeder Benutzer mit Upload-Berechtigungen ansonsten jede Aufgabe ausführen, auf die Ihr Webbenutzer Zugriff hat. Das Gleiche gilt, wenn Sie jemand dazu verleitet, eine schädliche PDF-Datei persönlich in ein anderes Format zu konvertieren.
TwoD
26

Für mich auf meinem Archlinux-System war die Leitung bereits unkommentiert. Ich musste "none" durch "read | write" ersetzen, damit es funktioniert.

Schmetterling
quelle
Stellen
Sie
gleich. Ich bin übrigens auf dem neuesten Stand.
Yukashima Huksay
24

Dies ist auf eine Sicherheitslücke zurückzuführen, die in Ghostscript 9.24 ( Quelle ) behoben wurde . Wenn Sie eine neuere Version haben, benötigen Sie diese Problemumgehung nicht mehr. Unter Ubuntu 19.10 mit Ghostscript 6 bedeutet dies:

  1. Stellen Sie sicher, dass Sie Ghostscript ≥9.24 haben:

    gs --version
    
  2. Wenn ja, entfernen Sie einfach den gesamten folgenden Abschnitt aus /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
quelle
Nur das Problem, das für mich unter Ubuntu 19.04 mit gs 9.26 funktioniert hat.
ManuelTS
2
sed -i '/disable ghostscript format types/,+6d' /etc/ImageMagick-6/policy.xmlhat gut für mich funktioniert.
Richard Kiefer
1
Arbeitete für Ubuntu 20.04
Alex K.
21

für mich auf arch linux musste ich kommentieren:

  <policy domain="delegate" rights="none" pattern="gs" />
Soloturn
quelle
Auf meinem System gab es zwei policy.xml-Dateien: /etc/ImageMagick-6/policy.xmlund /etc/ImageMagick-7/policy.xml. Achten Sie darauf, die richtige zu bearbeiten!
SylvainB
4

Unter Ubuntu 19.10 habe ich dies in /etc/ImageMagick-6/policy.xml getan

Kommentar auskommentieren

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

und kommentiere dies

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

Danach funktioniert dieser Befehl fehlerfrei

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

Ich hatte dieses Problem mit nextcloud, bei dem keine Miniaturansichten für PDF-Dateien erstellt werden konnten.

Keiner der vorgeschlagenen Schritte würde das Problem jedoch für mich lösen.

Schließlich fand ich den Grund: Die akzeptierte Antwort funktionierte, aber ich musste auch php-fpm neu starten, nachdem ich die Datei policy.xml bearbeitet hatte:

 sudo systemctl restart php7.2-fpm.service
derwiwie
quelle