102

Each time I want to convert jpg file to pdf by this command

convert *.jpg pictures.pdf

I have this error message:

convert: not authorized `pictures.pdf' @ error/constitute.c/WriteImage/1028.
Adon Naaman
  • 1,085
  • 1
    convert *.jpg pictures.pdf will overwrite all pdf files as one file pictures.pdf? – Vijay Oct 07 '18 at 17:11
  • This solution from StackOverflow worked for me: https://stackoverflow.com/questions/42928765/convertnot-authorized-aaaa-error-constitute-c-readimage-453 – Mike May 07 '19 at 16:55

4 Answers4

128

This problems comes from a security update: https://launchpad.net/ubuntu/+source/imagemagick/8:6.8.9.9-7ubuntu5.13

Someone reported it as a bug: https://bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1796563

As a temporary fix, I edited /etc/ImageMagick-6/policy.xml and changed the PDF rights from none to read|write there. Not sure about the implications, but at least it allows me to get things done.

YoungFrog
  • 1,486
  • 1
    I looked into it again, and I'm almost certain that the security fix is related to https://www.kb.cert.org/vuls/id/332928 (which documents various ways to bypass -dSAFER in ghostscript). – YoungFrog Oct 09 '18 at 13:13
  • 3
    This indeed works as advertized. I simply commented out (effectively removed) the pdf-line. It would be good to know what the side-effects would be! The policymap in the config file comments that this is for "disable ghostscript format types". – Marten Koetsier Oct 22 '18 at 12:00
  • 1
    See also: https://cromwell-intl.com/open-source/pdf-not-authorized.html – Falko Menge Dec 17 '18 at 00:54
  • 3
    I was hesitant to change the security settings. As an alternative to imagemagick I used "pdftoppm -jpeg input.pdf output.jpg" (from package named poppler-utils). This alternative was posted in https://bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1796563 – Vahid Pazirandeh Jan 18 '19 at 23:31
  • Change destination file format policy respectively .Usually they will be at the end .Thanks – yunus Apr 03 '19 at 09:20
  • Or you can just edit: /etc/ImageMagick-6/policy.xml AND comment by using the line: which becomes: – engine9pw Jun 19 '19 at 17:45
  • Worked brilliantly for me – Manmeet Singh Feb 27 '20 at 09:25
28

Fixed this on my Ubuntu 16.04.6 LTS and 18.04.6 LTS by following accepted answer.

Created simple sed one-liner to get this fixed faster:

sudo sed -i 's#<policy domain="coder" rights="none" pattern="PDF" />#<policy domain="coder" rights="read|write" pattern="PDF" />#' /etc/ImageMagick-6/policy.xml

and in programmatic way.

N0rbert
  • 99,918
7

If you're worried about the implications, https://bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1796563 mentions that

While the release notes are not exactly clear, Ghostscript v9.25 seems to make reference to fixing some vulnerabilities of this sort: https://www.ghostscript.com/doc/9.25/News.htm

serv-inc
  • 3,059
4

Disabling security limitations is a bad habit to get into. The ImageMagick authors presumably made this one for a reason. You should respect that, unless you know exactly what you are doing. That does not seem probable for most people looking at these answers.

The right thing to do in this case is to use other software which the authors themselves believe to be secure.

Here img2pdf fits the bill:

img2pdf --output out.pdf in.jpg
Sqerstet
  • 701
  • 1
  • 8
  • 22