Alerta

Logo de fabricante

Alerta 2026-122 Vulnerabilidad crítica en Pillow para Python

Producto(s) afectado(s): 

ProductoVersiones afectadas
Pillow (paquete pip)Desde 2.6.0 hasta 12.3.0 (anteriores a 13.0.0)

Solo afecta a sistemas con Ghostscript (gs) instalado en los que la aplicación abre imágenes EPS con un nombre de archivo controlado por el atacante.

Descripción

Se ha publicado una vulnerabilidad de inyección de argumentos en Pillow, la librería de procesamiento de imágenes de Python, identificada como CVE-2026-112900 (CVSSv4 9.2 – CRÍTICO). Un atacante que controle el nombre del archivo que se pasa a Image.open() puede inyectar argumentos en la línea de comandos de Ghostscript al procesar imágenes EPS y, bajo determinadas condiciones, ejecutar comandos arbitrarios en el sistema.

La falla está en la función Ghostscript() del módulo EpsImagePlugin, que construye el comando de Ghostscript colocando la ruta del archivo de entrada después de -f sin validarla ni convertirla en ruta absoluta. Un nombre que empieza con - es interpretado por Ghostscript como una opción. Un nombre con el formato @<ruta> hace que Ghostscript lea argumentos adicionales desde ese archivo; si el atacante también controla su contenido, puede escalar a ejecución de comandos.

El problema se origina en el nombre del archivo y no en su contenido, por lo que un archivo EPS legítimo también puede desencadenarlo. El ataque funciona con la invocación por defecto de Pillow, que incluye la opción -dSAFER de Ghostscript. El advisory incluye una prueba de concepto pública que ejecuta comandos en el sistema. A la fecha de este boletín, no se conoce explotación activa y la CVE no figura en el catálogo KEV de CISA.

Mitigación

Si no es posible actualizar de inmediato, la política de seguridad de Pillow recomienda:

  • Bloquear los archivos EPS en la capa de entrada de la aplicación, antes de pasarlos a Pillow, o restringir los formatos aceptados con Image.open(..., formats=...).
  • Si es necesario procesar EPS, ejecutar Ghostscript en un entorno aislado, sin acceso a red ni a montajes sensibles.

Además, se recomienda no usar nombres de archivo definidos por el usuario al abrir imágenes con Pillow.

https://pillow.readthedocs.io/en/stable/handbook/security.html

Solución

La solución consiste en actualizar Pillow a la versión 13.0.0 o posterior, publicada el 16/10/2026. La corrección convierte el nombre del archivo en una ruta absoluta antes de pasarlo a Ghostscript. Se deben reconstruir también los contenedores, imágenes base y paquetes que incluyan una copia anterior de la librería.

pip install -U "Pillow>=13.0.0"

Pillow 13.0.0 ya no es compatible con Python 3.10, por lo que esos entornos deben migrar a Python 3.11 o posterior.

Notas de la versión 13.0.0:

https://pillow.readthedocs.io/en/stable/releasenotes/13.0.0.html

Paquete en PyPI:

https://pypi.org/project/pillow/

Información adicional: