CVE-2026-96638 Denegación de servicio por amplificación de memoria en el decodificador BMP RLE de Pillow
En Pillow desde 9.1.0 hasta 13.0.0, BmpRleDecoder.decode() en src/PIL/BmpImagePlugin.py permite que escapes delta y ejecuciones en modo absoluto de BMP RLE manipulados agreguen datos más allá de dest_length sin un límite por rama. Un delta puede sumar unas 255 filas de imagen en una iteración, por lo que un archivo de un kilobyte con un ancho grande pero permitido puede expandir el bytearray a cientos de megabytes o más, causando denegación de servicio por agotamiento de memoria. Se corrige en la versión 13.0.0.
CVSS 3.1
- Probabilidad de explotación0,3 %
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
python-pillow Pillow
>= 9.1.0, < 13.0.0
Qué hacer
- Verificá si usás Pillow y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
Calculadora CVSS
CVSS 3.1 · 6.5 MEDIA
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
- Vector de ataqueRed
- Complejidad del ataqueBaja
- Privilegios requeridosNinguno
- Interacción del usuarioRequerida
- AlcanceSin cambio
- ConfidencialidadNinguna
- IntegridadNinguna
- DisponibilidadAlta
Descripción original
Pillow is a Python imaging library. From 9.1.0 until 13.0.0, BmpRleDecoder.decode() in src/PIL/BmpImagePlugin.py permits crafted RLE BMP delta escapes and absolute-mode runs to append beyond the remaining dest_length without a per-branch cap. A delta can add roughly 255 image rows in one iteration, so a kilobyte-sized file with a large but permitted width can expand the data bytearray to hundreds of megabytes or more, causing memory-exhaustion denial of service. This issue is fixed in version 13.0.0.
Referencias (4)
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.