AHORA
Nuevo proyecto de Ley de Protección de Datos Personales en Argentina: análisis completo Colombia actúa donde Argentina falla: la SIC sanciona a empresa por filtración Microsoft patches récord: 570 vulnerabilidades corregidas en julio 2026 DGL Talent: primera firma de talento en datos, privacidad y ciber de LATAM Nuevo proyecto de Ley de Protección de Datos Personales en Argentina: análisis completo Colombia actúa donde Argentina falla: la SIC sanciona a empresa por filtración Microsoft patches récord: 570 vulnerabilidades corregidas en julio 2026 DGL Talent: primera firma de talento en datos, privacidad y ciber de LATAM

Pillow expone servidores Python a ejecución remota por falla en validación de nombres de archivo

La librería de imágenes más usada en el ecosistema Python ejecuta comandos del sistema al procesar archivos EPS sin validar sus nombres antes de pasarlos a Ghostscript.
Alerta

La librería de imágenes más usada en el ecosistema Python ejecuta comandos del sistema al procesar archivos EPS sin validar sus nombres antes de pasarlos a Ghostscript.

Una vulnerabilidad crítica en Pillow — la librería de procesamiento de imágenes más utilizada para Python — permite que un atacante ejecute comandos arbitrarios del sistema operativo en un servidor simplemente especificando un nombre de archivo manipulado. La falla, identificada como CVE-2026-112900, reside en el manejo de imágenes en formato EPS y afecta a cualquier aplicación Python que procese archivos subidos por usuarios o recibidos de fuentes externas. El problema se origina en una decisión de diseño que delega el procesamiento de EPS a Ghostscript sin validar previamente el nombre del archivo que se le pasa como parámetro.

Cómo un nombre de archivo se convierte en vector de ataque

El mecanismo de explotación es directo: cuando Pillow recibe una imagen EPS para procesar, no la maneja internamente. En su lugar, invoca a Ghostscript — un programa separado que convierte el archivo EPS en píxeles que Pillow puede manipular. El problema está en que Pillow pasa el nombre del archivo a Ghostscript sin ninguna validación previa. Un atacante puede construir un nombre de archivo que, al ser interpretado por el shell del sistema operativo durante la invocación de Ghostscript, ejecute comandos adicionales.

Este tipo de vulnerabilidad — conocida como inyección de comandos — es particularmente peligrosa en contextos web, donde aplicaciones Python procesan imágenes subidas por usuarios para generar miniaturas, aplicar filtros o extraer metadatos. La superficie de ataque incluye cualquier servicio que acepte archivos de imagen sin restricciones estrictas sobre el formato o que confíe en la extensión del archivo para determinar su tipo. No se requiere que el contenido del archivo EPS esté manipulado: basta con que su nombre contenga secuencias de caracteres que el shell interprete como comandos.

Por qué Pillow delega en Ghostscript y qué implica esa dependencia

EPS es un formato vectorial heredado de la era PostScript, diseñado originalmente para impresión profesional. A diferencia de formatos rasterizados como PNG o JPEG, EPS contiene instrucciones de dibujo que deben interpretarse para generar una imagen de píxeles. Pillow no implementa un intérprete PostScript propio — hacerlo sería replicar la complejidad de Ghostscript, un proyecto con décadas de desarrollo. En su lugar, Pillow asume que Ghostscript está instalado en el sistema y lo invoca como proceso externo.

Esta arquitectura introduce una dependencia crítica: la seguridad de Pillow al procesar EPS queda condicionada no solo a su propio código, sino también a cómo invoca programas externos. La falla CVE-2026-112900 demuestra que esa invocación no estaba diseñada con un modelo de amenaza que contemplara nombres de archivo hostiles. La ausencia de validación sugiere que el código asumía que los nombres de archivo provendrían de fuentes confiables o que el sistema de archivos impondría restricciones suficientes — una suposición que no se sostiene en entornos donde usuarios no autenticados pueden subir archivos.

Exposición en América Latina por adopción masiva de Python en servicios web

La vulnerabilidad tiene impacto directo en la región por la adopción extendida de Python en startups tecnológicas y servicios digitales de Argentina, Brasil, México, Chile y Colombia. Frameworks web como Django y Flask — ambos con ecosistemas maduros en LATAM — frecuentemente integran Pillow para manejar imágenes de perfil, contenido generado por usuarios o procesamiento de documentos escaneados. Plataformas de e-commerce que permiten a vendedores subir fotos de productos, aplicaciones de telemedicina que reciben imágenes diagnósticas, y sistemas de gestión documental en el sector público son vectores de exposición concretos.

Brasil y México concentran la mayor cantidad de aplicaciones Python en producción en la región, según datos de adopción de frameworks web. En ambos países, la práctica común de desplegar aplicaciones en contenedores Docker con imágenes base que incluyen Ghostscript por defecto amplifica la superficie de ataque: muchos desarrolladores no son conscientes de que Ghostscript está presente en el entorno de ejecución, y por lo tanto no consideran las implicancias de seguridad de procesar formatos que lo invocan. La falla no requiere configuración especial — afecta instalaciones estándar de Pillow con dependencias por defecto.

Publicidad728×90 — In-Article

Qué distingue esta vulnerabilidad de fallos previos en librerías de imágenes

CVE-2026-112900 no es el primer caso de ejecución remota de código en librerías de procesamiento de imágenes, pero su mecanismo es inusual. Vulnerabilidades anteriores en ImageMagick, GraphicsMagick y el propio Ghostscript típicamente explotaban errores de parsing en el contenido del archivo — desbordamientos de búfer, confusión de tipos, o interpretación insegura de metadatos embebidos. Esta falla, en cambio, no requiere manipular el contenido del archivo: el vector de ataque está completamente en el nombre del archivo, un dato que muchos sistemas validan de forma superficial o no validan en absoluto.

La distinción es relevante porque las defensas tradicionales contra archivos maliciosos — escaneo de contenido, análisis de firmas, sandboxing del proceso de renderizado — no mitigan este ataque. Un archivo EPS completamente válido y benigno en su contenido puede ser explotado si su nombre contiene la carga maliciosa. Esto invierte el modelo mental habitual de seguridad en procesamiento de archivos, donde el riesgo se asocia con lo que está dentro del archivo, no con cómo se llama.

Nuestro análisis

CVE-2026-112900 expone un patrón recurrente en el ecosistema Python: la delegación de funcionalidad compleja a herramientas externas sin un modelo de amenaza explícito para la interfaz entre ambos componentes. Pillow no es el único caso — librerías que invocan FFmpeg para video, Pandoc para conversión de documentos, o utilidades de línea de comandos para procesamiento de datos enfrentan riesgos similares si no validan rigurosamente los parámetros que pasan a procesos externos. La ausencia de validación de nombres de archivo antes de construir comandos shell es una clase de error que debería haberse mitigado con el uso de APIs que evitan la interpretación del shell — como subprocess con argumentos en lista en lugar de cadenas concatenadas — pero que persiste en código heredado o en implementaciones que priorizan compatibilidad sobre seguridad.

Lo que aún no está documentado es el alcance real de la explotación en la práctica. No hay reportes públicos de explotación activa de CVE-2026-112900, pero la facilidad técnica del ataque — no requiere conocimiento profundo de formatos de imagen ni de internals de Ghostscript — sugiere que la ventana entre divulgación y weaponización será corta. Tampoco está claro si versiones anteriores de Pillow están afectadas o si la falla se introdujo en una refactorización reciente del código de manejo de EPS. La pregunta que queda abierta es si la comunidad de desarrollo Python adoptará validación estricta de nombres de archivo como práctica estándar en librerías que invocan procesos externos, o si seguiremos viendo variantes de este patrón en otras dependencias críticas del ecosistema.

Publicidad728×90 — In-Article
Publicidad300×250 — Medium Rectangle

El briefing semanal

Seguridad, privacidad e IA en LATAM. Curado por expertos, gratis cada semana.

Publicidad300×600 — Half Page
Publicidad970×90 — Leaderboard