ImageMagick security policy error (solved)

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.
Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #103724
    Member
    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.
      #103727
      Member
      Robin
        Helpful
        Up
        1
        ::

        From: https://stackoverflow.com/a/59193253/15250400

        1.) Make sure you have Ghostscript ≥9.24:

            gs --version
        

        2.) 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.

        #103731
        Member
        andfree
          Helpful
          Up
          0
          ::

          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.
        Viewing 3 posts - 1 through 3 (of 3 total)
        • You must be logged in to reply to this topic.