Descripción
Pillow es una biblioteca de procesamiento de imágenes para Python. Desde la versión 2.0.0 hasta la 13.0.0, Pillow presenta un desbordamiento de búfer en el heap y una divulgación de datos residuales del heap en _tiffWriteProc al guardar datos TIFF comprimidos mediante libtiff en un destino sin un fileno() utilizable, como BytesIO. La función de callback calcula el tamaño de su asignación a partir del tamaño anterior del búfer en lugar de la posición de escritura actual, lo que permite que una etiqueta TIFF fuera de línea controlada por un atacante o un perfil ICC conservado se copie más allá de la asignación después de que libtiff avance la posición. Este desbordamiento puede provocar la caída del proceso y podría permitir la ejecución de código. De forma independiente, los espacios de alineación no escritos en la salida TIFF comprimida de más de 64 KiB pueden divulgar bytes residuales del heap sin necesidad de una etiqueta especialmente manipulada. Las rutas de archivo y los destinos con descriptores de archivo reales no se ven afectados. 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: >= 2.0.0, < 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-332p-7hrc-92…
- Referencia en github.comgithub.com/python-pillow/Pillow/commit/11582e5ffbdceb973d5ee593f3105a…
- 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 _tiffWriteProc when saving TIFF to BytesIO
Pillow is a Python imaging library. From 2.0.0 until 13.0.0, Pillow has a heap buffer overflow and stale-heap disclosure in _tiffWriteProc when saving compressed TIFF data through libtiff to a target without a usable fileno(), such as BytesIO. The callback sizes its allocation from the prior buffer size instead of the current write position, allowing an attacker-controlled out-of-line TIFF tag or retained ICC profile to be copied beyond the allocation after libtiff seeks forward. This overflow can crash the process and may allow code execution. Independently, unwritten alignment gaps in compressed TIFF output larger than 64 KiB can disclose stale heap bytes without a crafted tag. File paths and targets with real file descriptors are unaffected. This issue is fixed in version 13.0.0.