Forum › Forums › New users › New Users and General Questions › ImageMagick security policy error (solved)
- This topic has 2 replies, 2 voices, and was last updated Mar 31-8:14 am by andfree.
-
AuthorPosts
-
March 31, 2023 at 6:49 am #103724Member
andfree
$ convert *.jpg picture.pdf convert-im6.q16: attempt to perform an operation not allowed by the security policy PDF @ error/constitute.c/IsCoderAuthorized/421./etc/ImageMagick-6/policy.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE policymap [ <!ELEMENT policymap (policy)*> <!ATTLIST policymap xmlns CDATA #FIXED ''> <!ELEMENT policy EMPTY> <!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED name NMTOKEN #IMPLIED pattern CDATA #IMPLIED rights NMTOKEN #IMPLIED stealth NMTOKEN #IMPLIED value CDATA #IMPLIED> ]> <!-- Configure ImageMagick policies. Domains include system, delegate, coder, filter, path, or resource. Rights include none, read, write, execute and all. Use | to combine them, for example: "read | write" to permit read from, or write to, a path. Use a glob expression as a pattern. Suppose we do not want users to process MPEG video images: <policy domain="delegate" rights="none" pattern="mpeg:decode" /> Here we do not want users reading images from HTTP: <policy domain="coder" rights="none" pattern="HTTP" /> The /repository file system is restricted to read only. We use a glob expression to match all paths that start with /repository: <policy domain="path" rights="read" pattern="/repository/*" /> Lets prevent users from executing any image filters: <policy domain="filter" rights="none" pattern="*" /> Any large image is cached to disk rather than memory: <policy domain="resource" name="area" value="1GP"/> Use the default system font unless overwridden by the application: <policy domain="system" name="font" value="/usr/share/fonts/favorite.ttf"/> Define arguments for the memory, map, area, width, height and disk resources with SI prefixes (.e.g 100MB). In addition, resource policies are maximums for each instance of ImageMagick (e.g. policy memory limit 1GB, -limit 2GB exceeds policy maximum so memory limit is 1GB). Rules are processed in order. Here we want to restrict ImageMagick to only read or write a small subset of proven web-safe image types: <policy domain="delegate" rights="none" pattern="*" /> <policy domain="filter" rights="none" pattern="*" /> <policy domain="coder" rights="none" pattern="*" /> <policy domain="coder" rights="read|write" pattern="{GIF,JPEG,PNG,WEBP}" /> --> <policymap> <!-- <policy domain="resource" name="temporary-path" value="/tmp"/> --> <policy domain="resource" name="memory" value="256MiB"/> <policy domain="resource" name="map" value="512MiB"/> <policy domain="resource" name="width" value="16KP"/> <policy domain="resource" name="height" value="16KP"/> <!-- <policy domain="resource" name="list-length" value="128"/> --> <policy domain="resource" name="area" value="128MP"/> <policy domain="resource" name="disk" value="1GiB"/> <!-- <policy domain="resource" name="file" value="768"/> --> <!-- <policy domain="resource" name="thread" value="4"/> --> <!-- <policy domain="resource" name="throttle" value="0"/> --> <!-- <policy domain="resource" name="time" value="3600"/> --> <!-- <policy domain="coder" rights="none" pattern="MVG" /> --> <!-- <policy domain="module" rights="none" pattern="{PS,PDF,XPS}" /> --> <!-- <policy domain="path" rights="none" pattern="@*" /> --> <!-- <policy domain="cache" name="memory-map" value="anonymous"/> --> <!-- <policy domain="cache" name="synchronize" value="True"/> --> <!-- <policy domain="cache" name="shared-secret" value="passphrase" stealth="true"/> <!-- <policy domain="system" name="max-memory-request" value="256MiB"/> --> <!-- <policy domain="system" name="shred" value="2"/> --> <!-- <policy domain="system" name="precision" value="6"/> --> <!-- <policy domain="system" name="font" value="/path/to/font.ttf"/> --> <!-- <policy domain="system" name="pixel-cache-memory" value="anonymous"/> --> <!-- <policy domain="system" name="shred" value="2"/> --> <!-- <policy domain="system" name="precision" value="6"/> --> <!-- not needed due to the need to use explicitly by mvg: --> <!-- <policy domain="delegate" rights="none" pattern="MVG" /> --> <!-- use curl --> <policy domain="delegate" rights="none" pattern="URL" /> <policy domain="delegate" rights="none" pattern="HTTPS" /> <policy domain="delegate" rights="none" pattern="HTTP" /> <!-- in order to avoid to get image with password text --> <policy domain="path" rights="none" pattern="@*"/> <!-- 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" /> </policymap>- This topic was modified 1 month, 1 week ago by andfree.
- This topic was modified 1 month, 1 week ago by andfree.
- This topic was modified 1 month, 1 week ago by andfree.
March 31, 2023 at 7:23 am #103727MemberRobin
::From: https://stackoverflow.com/a/59193253/15250400
1.) Make sure you have Ghostscript ≥9.24:
gs --version2.) If yes, just remove this whole following section from /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" />Windows is like a submarine. Open a window and serious problems will start.
March 31, 2023 at 8:14 am #103731Memberandfree
::Thank you.
$ gs –version bash: gs: command not found$ sudo apt-get install ghostscript Reading package lists... Done Building dependency tree... Done Reading state information... Done Suggested packages: ghostscript-x The following NEW packages will be installed: ghostscript 0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded. Need to get 0 B/98.1 kB of archives. After this operation, 236 kB of additional disk space will be used. Selecting previously unselected package ghostscript. (Reading database ... 105079 files and directories currently installed.) Preparing to unpack .../ghostscript_9.53.3~dfsg-7+deb11u2_i386.deb ... Unpacking ghostscript (9.53.3~dfsg-7+deb11u2) ... Setting up ghostscript (9.53.3~dfsg-7+deb11u2) ... Processing triggers for man-db (2.10.1-1~bpo11+1) ...$ gs –version GPL Ghostscript 9.53.3 (2020-10-01) Copyright (C) 2020 Artifex Software, Inc. All rights reserved. This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY: see the file COPYING for details. Error: /undefinedfilename in (\342\200\223version) Operand stack: Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push Dictionary stack: --dict:726/1123(ro)(G)-- --dict:0/20(G)-- --dict:75/200(L)-- Current allocation mode is local Last OS error: No such file or directory GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1(…) remove this whole following section from /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” />Unfortunately, it didn’t work`Finally, it seems that it worked. Many thanks.
- This reply was modified 1 month, 1 week ago by andfree.
- This reply was modified 1 month, 1 week ago by andfree.
- This reply was modified 1 month, 1 week ago by andfree.
-
AuthorPosts
- You must be logged in to reply to this topic.