Descripción
Pillow es una biblioteca de imágenes para Python. En versiones anteriores a la 13.0.0, el decodificador JPEG de Pillow puede escribir una línea de escaneo de ancho completo en un búfer dimensionado para la escala de borrador solicitada. ImagingJpegDecode no verifica el ancho de salida real ni la cantidad de componentes de libjpeg después de solicitar el escalado, y un JPEG SOF3 sin pérdida de 8 bits decodificado por una compilación enlazada con libjpeg-turbo 3.x puede ignorar la geometría de reducción solicitada. Un atacante puede suministrar un JPEG de este tipo a una aplicación que use draft() o thumbnail() para solicitar una reducción de escala. Esto puede corromper la memoria del heap, provocar la caída del proceso o, potencialmente, permitir la ejecución de código. Las compilaciones anteriores de libjpeg-turbo 2.x e IJG rechazan la entrada SOF3. Este problema está corregido en la versión 13.0.0.
Qué hacer
Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.
Versiones afectadas
- Pillow Afectadas: < 13.0.0
Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.
Referencias
- Referencia en github.comgithub.com/python-pillow/Pillow/security/advisories/GHSA-8g5g-8vmr-97…
- Referencia en github.comgithub.com/python-pillow/Pillow/commit/242a059aedc1935097d9aa1dc3f099…
- Referencia en github.comgithub.com/python-pillow/Pillow/releases/tag/13.0.0
Ver el texto original en inglés (CVE.org)
Pillow: Heap buffer overflow in ImagingJpegDecode
Pillow is a Python imaging library. Prior to 13.0.0, Pillow's JPEG decoder can write a full-width scanline into a buffer sized for a requested draft scale. ImagingJpegDecode does not verify libjpeg's actual output width and component count after scaling is requested, and an 8-bit lossless SOF3 JPEG decoded by a build linked to libjpeg-turbo 3.x can ignore the requested downscaling geometry. An attacker can supply such a JPEG to an application that uses draft() or thumbnail() to request downscaling. This can corrupt heap memory, crash the process, or potentially allow code execution. Older libjpeg-turbo 2.x and IJG builds reject the SOF3 input. This issue is fixed in version 13.0.0.