Tienes una web en PHP y usas "imagemagick" para hacer thumnails podrias estar en riesgo

  • Autor Autor tudmin
  • Fecha de inicio Fecha de inicio
tudmin

tudmin

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
algo curioso cuando vi la noticia en wordpress, me parecio una mas del monton hast que me fije que era una vulnerabilidad comun que cualquiera podria cometer, revisando sitios webs de clientes yo lo tenia, asi que lo mas rapido es desactivar GHOSTSCRIPT , POSTSCRIPT desde PHP, sobre todo si tienen un docker que usa como imagen Ubuntu.

ya que solo validar la imagen que suba un usuario solo por extension no basta, algo comun cuando se hace las cosas rapidas y por ahorrar un poco de procesamiento


PHP:
// ❌ Practica obsoleta - Solo verifica extensión
$allowed = ['png', 'jpg', 'jpeg', 'gif'];
$ext = pathinfo($_FILES['imagen']['name'], PATHINFO_EXTENSION);

if (!in_array($ext, $allowed)) {
    die('Archivo no permitido');
}

// Luego procesas con ImageMagick
$img = new Imagick($_FILES['imagen']['tmp_name']);
// Listo si tienes Ghostscript habilitado ya te la metieron por atras
$img->thumbnailImage(200, 200);

y es interesante en proyectos sbre todo del gobierno, donde pueden probar, la logica detras de esto es que imagemagick te quiere complacer, cuando le pides un thumbnail este te lo saca de cualquier archivo soportado, PDF, PostScript, etc,y ahi es donde te cuelan los comandos para que se ejecuten

alguien con un archivo postscript, le agrega la extension JPG o PNG, te lo sube al server y si tiene Ghostscript habilitado se ejecuta.
 
Buen aviso. ImageMagick tiene historial de vulnerabilidades graves. Si generas thumbnails con PHP, conviene revisar:

1. Version instalada: revisa que ImageMagick este actualizado; versiones antiguas son mas vulnerables.
2. Politicas de seguridad: limitar formatos peligrosos como MVG, PS, EPS, etc. en policy.xml.
3. Validar input: no aceptar cualquier extension ni MIME; muchos ataques se esconden en archivos aparentemente inocentes.
4. Alternativas: GD o Imagick sin soporte para formatos complejos si solo necesitas JPEG/PNG/WebP.
5. Sandbox: si es posible, generar miniaturas en un contenedor sin acceso a red.

No es paranoia: ImageMagick ha tenido varios CVEs exploitables con un archivo de imagen malicioso. Si manejas uploads de usuarios, esto es critico.
 
no sé nada de esas vulnerabilidades. no cap, solo sé que hay que tener cuidado con lo que se sube. espero que lo resuelvas y no te quedes en mid.
 
Eso no es nuevo de imagick, todo el rato veo incidencias de de seguridad
 
Lo que me parece importante de este caso es que la seguridad no debería quedarse únicamente en comprobar la extensión o incluso el MIME desde PHP.

Al final ImageMagick intenta identificar y procesar el contenido real del archivo, así que si en una web solamente necesitamos generar thumbnails de JPG, PNG o WebP, probablemente lo más seguro sea limitar directamente en policy.xml los formatos/coders que ImageMagick puede interpretar y desactivar todo lo demás que no vayamos a utilizar.

Además, viendo que siguen apareciendo CVE de ImageMagick este mismo año, en un servidor que acepte uploads de usuarios tendría bastante sentido combinar actualización + policy restrictiva + límites de recursos y, si es posible, ejecutar el procesado aislado.
 
Atrás
Arriba