341 votes

convert:not authorized `aaaa` @ error/constitute.c/ReadImage/453

Je veux créer un pic captcha en utilisant convert de ImageMagick.

Et je suis ce mais il y a quelques problèmes.

Entrée Dans mon shell linux :

convert -background white -fill black -font FreeSerif-Bold -pointsize 36 label:'adfgh' ./test.png

L'erreur est :

convertir : non autorisé adfgh @ error/constitute.c/ReadImage/453. convert:nom de fichier d'image manquant ./test.png @ error/convert.c/ConvertImageCommand/3015

Mon ImageMagick : Version:6.7.2-7 , je l'installe avec yum install ImageMagick .

Je ne sais pas quoi faire. Un conseil, s'il vous plaît ?

8 votes

Double vérification policy.xml . Les options de sécurité peuvent empêcher label: protocole.

2 votes

Merci ! Je modifie le policy.xml, je commente cette ligne" <policy domain="coder" rights="none" pattern="LAEBL"> ". Cela fonctionne ! Merci !

0 votes

Bonjour. Cela a également fonctionné pour moi. Merci beaucoup, vous me sauvez la vie !

476voto

sNICkerssss Points 4236

Remarque : la solution proposée dans cette réponse et dans d'autres réponses implique la désactivation des mesures de sécurité qui sont là pour corriger les vulnérabilités d'exécution de code arbitraire. Voir par exemple ce ghostscript lié et ce qui concerne ubuntu annonce. N'avancez avec ces solutions que si l'entrée à convert provient d'une source fiable.

J'utilise ImageMagick en php (v.7.1) pour découper les fichiers PDF en images.

D'abord j'ai eu des erreurs comme :

Type d'exception : ImagickException

Message d'exception : non autorisé ..... @ error/constitute.c/ReadImage/412

Après quelques changements dans /etc/ImageMagick-6/policy.xml Je commence à avoir des erreurs comme :

Type d'exception : ImagickException

Message d'exception : impossible de créer le fichier temporaire ..... Permission refusée @ error/pdf.c/ReadPDFImage/465

Ma solution :

Dans le dossier /etc/ImageMagick-6/policy.xml (ou /etc/ImageMagick/policy.xml )

  1. ligne de commentaire

    <!-- <policy domain="coder" rights="none" pattern="MVG" /> -->
  2. ligne de changement

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

    à

    <policy domain="coder" rights="read|write" pattern="PDF" />
  3. ajouter une ligne

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

Puis redémarrez votre serveur web (nginx, apache).

54 votes

Cela devrait être la réponse acceptable si vous avez rencontré ce problème sur une box Ubuntu depuis le 4 octobre 2018. D'autres problèmes provenant d'autres distros ?

13 votes

Je rencontre également ce problème aujourd'hui même sur Ubuntu 16.04. Est-ce que quelque chose a changé ? De plus, je n'ai pas eu besoin d'ajouter la ligne LABEL, j'ai juste changé les droits pour le PDF de "none" à "read".

5 votes

Résout un problème très similaire dans ma boîte Ubuntu 18.04.1 LTS

174voto

Lv2eof Points 1357

J'ai utilisé plusieurs fois l'ImageMagic convert pour convertir *.tif pour *.pdf des fichiers.

Je ne sais pas pourquoi, mais aujourd'hui, j'ai commencé à recevoir l'erreur suivante :

convert: not authorized `a.pdf' @ error/constitute.c/WriteImage/1028.

Après avoir émis la commande :

convert a.tif a.pdf

Après avoir lu les réponses ci-dessus, j'ai édité le fichier /etc/ImageMagick-6/policy.xml

et a changé la ligne :

policy domain="coder" rights="none" pattern="PDF" 

à

policy domain="coder" rights="read|write" pattern="PDF"

et maintenant tout fonctionne bien.

J'ai "ImageMagick 6.8.9-9 Q16 x86_64 2018-09-28" sur "Ubuntu 16.04.5 LTS".

1 votes

Je suis sur openSuse Leap 15.0 et j'ai utilisé "compare" pour comparer des pages PDF, même erreur, même après une mise à jour par openSuse le 10 octobre 2018. Après avoir modifié la ligne comme décrit ici, cela a fonctionné.

0 votes

Je suis sur Ubuntu Xenial 16.04 LTS et j'ai soudainement commencé à voir cette erreur dans les journaux d'Apache. Je confirme qu'après avoir modifié la politique comme décrit ici, le problème a été résolu.

6 votes

C'est la réponse minimale correcte - la réponse de sNICkerssss est techniquement correcte mais une seule étape est nécessaire pour l'utilisation en ligne de commande de convert au PDF.

71voto

kristina Points 7269

Remarque : cette solution et toute autre solution "modifier le policy.xml" désactive les mesures de sécurité contre les vulnérabilités d'exécution de code arbitraire dans ImageMagick. Si vous devez traiter des entrées que vous ne contrôlez pas à 100%, vous devez utiliser un autre programme (pas ImageMagick).

Si vous êtes toujours là, c'est que vous essayez de modifier des images dont vous avez le contrôle total, que vous savez sûres et qui ne peuvent pas être modifiées par les utilisateurs.

Il existe un /etc/ImageMagick/policy.xml qui est installé par yum. Il interdit presque tout (pour des raisons de sécurité et pour éviter que votre système ne soit surchargé d'appels ImageMagick).

Si vous obtenez un ReadImage comme ci-dessus, vous pouvez changer la ligne en :

<policy domain="coder" rights="read" pattern="LABEL" />

ce qui devrait régler le problème.

Le fichier contient un tas de documentation, vous devriez donc la lire. Par exemple, si vous avez besoin de plus de permissions, vous pouvez les combiner comme suit :

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

...ce qui est préférable à la suppression de tous les contrôles de permissions (c'est-à-dire la suppression ou le commentaire de la ligne).

2 votes

Ne faites pas ça. Cette restriction a été introduite en tant que mesure de sécurité en raison de la possibilité d'exécution de code à distance (cf. launchpad.net/ubuntu/+source/imagemagick/8:6.7.7.10-6ubuntu3.13 ). La bonne réponse est donc : Vous devez utiliser un autre programme pour cette tâche.

0 votes

Assurez-vous de mettre à jour ghostscript kb.cert.org/vuls/id/332928

6 votes

@Marian L'utilisation d'un autre programme n'est pas utile - le PO a demandé spécifiquement ImageMagick. La réponse devrait être "Vous devriez savoir ce que vous faites, le faire à vos risques et périls, vous assurer que votre système est sécurisé, voici pourquoi vous ne devriez pas le faire, et voici comment le faire".

28voto

Armen Points 3129

Si quelqu'un a besoin de le faire avec une seule commande après l'installation, exécutez ceci !

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

7 votes

Plus court : sed -i 's/\(<policy domain="coder" rights=\)"none" \(pattern="PDF" \/>\)/\1"read|write"\2/g' /etc/ImageMagick-6/policy.xml

5 votes

Plus concis. Et sudo est nécessaire pour éditer un fichier dans /etc sudo sed -i '/PDF/s/none/read|write/' /etc/ImageMagick-6/policy.xml

0 votes

assurez-vous de mettre à jour ghostscript kb.cert.org/vuls/id/332928

25voto

Nikolay Ivanov Points 91

La réponse avec le plus de votes (je n'ai pas assez de réputation pour y ajouter un commentaire) suggère de commenter la ligne MVG, mais gardez à l'esprit ceci :

CVE-2016-3714

ImageMagick prend en charge les fichiers ".svg/.mvg", ce qui signifie que les attaquants peuvent code dans un langage de script, par exemple MSL (Magick Scripting Language) et MVG (Magick Vector Graphics), et le télécharger sur un serveur. langage de script, par exemple MSL (Magick Scripting Language) et MVG (Magick Vector Graphics). déguisé en fichier image, et forcer le logiciel à exécuter des commandes malveillantes malveillantes du côté du serveur, comme décrit ci-dessus. Par exemple, en ajoutant les commandes suivantes dans un fichier et de le télécharger sur un serveur web qui utilise une version vulnérable d'ImageMagick entraînera l'exécution de la commande "ls -la" sur le serveur.

exploit.jpg :

push graphic-context viewbox 0 0 640 480 fill url( https://website.com/image.png "|ls"-la)' pop graphic-context

Et

Toute version inférieure à 7.0.1-2 ou 6.9.4-0 est potentiellement vulnérable. les parties concernées doivent dès que possible mettre à niveau vers la dernière version d'ImageMagick.

Source :

3 votes

Je n'ai pas commenté MVG et la conversion PDF -> JPG fonctionne toujours. Merci.

1 votes

6.7.7-10 regarde comme la version la plus récente, publiée le 28 septembre 2018). Qu'est-ce qui me manque ? $convert --version Version: ImageMagick 6.7.7-10 2018-09-28 Q16 http://www.imagemagick.org

0 votes

il existe une version plus récente imagemagick.org/script/download.php Il est probable que votre distribution Linux utilise une version plus ancienne. Ubuntu 16.04 utilise actuellement la version 6.8.9-9.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X