writeimage write readimage q16 not im6 error convert constitute authorized imagemagick imagemagick-convert

imagemagick - write - convertir: no autorizado `aaaa` @ error/constitutivo.c/ReadImage/453



error constitute c writeimage 1037 (8)

Quiero crear una imagen de captcha mediante el uso de convert de ImageMagick.

Y sigo this , pero hay algún problema.

Entrada en mi shell de Linux:

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

El error es:

convertir: no autorizado adfgh @ error / constitut.c / ReadImage / 453. convertir: falta un nombre de archivo de imagen ./test.png @ error / convert.c / ConvertImageCommand / 3015

My ImageMagick: Versión: 6.7.2-7, lo instalo con yum install ImageMagick .

No tengo ni idea. ¿Algún consejo por favor?


Nota: la solución en esta y otras respuestas implica deshabilitar las medidas de seguridad que existen para corregir vulnerabilidades de ejecución de código arbitrario. Vea, por ejemplo, este anuncio relacionado con ghostscript y este anuncio relacionado con ubuntu . Solo avance con estas soluciones si la entrada para convert proviene de una fuente confiable.

Utilizo ImageMagick en php (v.7.1) para cortar archivos PDF en imágenes.

Primero obtuve errores como:

Tipo de excepción: ImagickException

Mensaje de excepción: no autorizado ..... @ error / constitut.c / ReadImage / 412

Después de algunos cambios en /etc/ImageMagick-6/policy.xml empiezo a tener errores como:

Tipo de excepción: ImagickException

Mensaje de excepción: no se puede crear el archivo temporal ... Permiso denegado @ error / pdf.c / ReadPDFImage / 465

Mi solución :

En el archivo /etc/ImageMagick-6/policy.xml (o /etc/ImageMagick/policy.xml )

  1. línea de comentarios

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

  2. cambio de linea

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

    a

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

  3. añadir línea

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

Luego reinicie su servidor web (nginx, apache).


Después de una actualización reciente en mi sistema Ubuntu 16.04, también comencé a recibir este error al intentar ejecutar convertir en archivos .ps para convertirlos en archivos PDF.

Esta solución funcionó para mí:

En una ejecución de terminal:

sudo gedit /etc/ImageMagick-6/policy.xml

Esto debería abrir el archivo policy.xml en el editor de texto gedit. Si no es así, su imagen mágica podría estar instalada en un lugar diferente. Entonces cambia

rights="none"

a

rights="read | write"

para líneas PDF, EPS y PS cerca del final del archivo. Guardar y salir, y la magia de la imagen debería funcionar nuevamente.


Hay un archivo /etc/ImageMagick/policy.xml instalado por yum. No permite casi todo (por seguridad y para proteger su sistema de una sobrecarga de llamadas con ImageMagick).

Si obtiene un error de ReadImage como el anterior, puede cambiar la línea a:

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

lo que debería solucionar el problema.

El archivo tiene un montón de documentación, así que deberías leerlo. Por ejemplo, si necesita más permisos, puede combinarlos como:

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

... que es preferible a eliminar todas las verificaciones de permisos (es decir, eliminar o comentar la línea).


La respuesta con los votos más altos (no tengo suficiente reputación para agregar comentarios allí) sugiere comentar la línea de MVG, pero tenga esto en cuenta:

CVE-2016-3714

ImageMagick admite archivos ".svg / .mvg", lo que significa que los atacantes pueden crear código en un lenguaje de script, por ejemplo, MSL (Magick Scripting Language) y MVG (Magick Vector Graphics), subirlo a un servidor disfrazado como un archivo de imagen y forzar el software para ejecutar comandos maliciosos en el lado del servidor como se describe anteriormente. Por ejemplo, al agregar los siguientes comandos en un archivo y cargarlo en un servidor web que utiliza una versión vulnerable de ImageMagick, se ejecutará el comando "ls -la" en el servidor.

exploit.jpg:

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

Y

Cualquier versión por debajo de 7.0.1-2 o 6.9.4-0 es potencialmente vulnerable y las partes afectadas deben actualizar lo antes posible a la última versión de ImageMagick.

Source


Si alguien necesita hacerlo con un comando después de la instalación, ejecute esto.

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


Simplemente elimine el archivo /etc/ImageMagick/policy.xml.


También tuve el error de error/constitute.c/ReadImage/453 al intentar convertir un eps a un gif con magia de imagen. Probé la solución propuesta por sNICkerssss pero aún tenía errores (aunque diferentes al primero) e error/constitute.c/ReadImage/412 Lo que resolvió el problema fue read en otras entradas

<policy domain="coder" rights="read" pattern="PS" /> <policy domain="coder" rights="read" pattern="EPS" /> <policy domain="coder" rights="read" pattern="PDF" /> <policy domain="coder" rights="read" pattern="XPS" /> <policy domain="coder" rights="read|write" pattern="LABEL" />


Uso muchas veces el comando de convert ImageMagic para convertir archivos *.tif archivos *.pdf .

No sé por qué, pero hoy comencé a recibir el siguiente error:

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

Después de emitir el comando:

convert a.tif a.pdf

Después de leer las respuestas anteriores, /etc/ImageMagick-6/policy.xml el archivo /etc/ImageMagick-6/policy.xml

y cambió la línea:

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

a

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

Y ahora todo funciona bien.

Tengo "ImageMagick 6.8.9-9 Q16 x86_64 2018-09-28" en "Ubuntu 16.04.5 LTS".