Development #56305
vignette d'images trop grandes
0%
Description
Exception: type = '<class 'PIL.Image.DecompressionBombError'>', value = 'Image size (739875840 pixels) exceeds limit of 178956970 pixels, could be decompression bomb DOS attack.' Stack trace (most recent call first): File "/usr/lib/python3/dist-packages/PIL/Image.py", line 2593, in _decompression_bomb_check 2591 "Image size (%d pixels) exceeds limit of %d pixels, " 2592 "could be decompression bomb DOS attack." % > 2593 (pixels, 2 * MAX_IMAGE_PIXELS)) 2594 2595 if pixels > MAX_IMAGE_PIXELS: locals: pixels = 739875840 size = (26576, 27840) ... PATH_INFO '/vie-pratique/demander-mon-pass-lillemoi/38610/files/18/thumbnail/Nume_riser.jpeg'
Même si ce scan est légitime, ça me va très bien que PIL saute ainsi, il y a juste à l'attraper pour ne pas fournir une 500.
Si on a l'info au moment où ça se décide (mais je ne crois pas), on pourrait en amont dire que les images d'une certaine taille (en octets) ne peuvent pas produire de vignettes, tout simplement. (ici le fichier fait 143M)
JPEG image data, JFIF standard 1.01, aspect ratio, density 3200x3200, segment length 16, Exif Standard: [TIFF image data, big-endian, direntries=9, manufacturer=EPSON, model=XP-600, orientation=upper-left, xresolution=136, yresolution=144, resolutionunit=2, software=Apple Image Capture, hostcomputer=Apple Mac OS X], baseline, precision 8, 26576x27840, components 3
Fichiers
Révisions associées
Historique
Mis à jour par Nicolas Roche il y a plus de 2 ans
(je n'ai pas réussi à reproduire avec une image TIFF de 184M : testé en je déroulant jusqu'au bout un formulaire ayant un champ image)
Mis à jour par Frédéric Péters il y a plus de 2 ans
On parle des dimensions, 26576x27840, pas du poids du fichier. (pas la moindre idée des dimensions de ton fichier mais visiblement en-dessous de la limite, ou celle-ci a été augmentée dans les nouvelles versions, également possible).
Mis à jour par Nicolas Roche il y a plus de 2 ans
- Fichier bigone.jpg bigone.jpg ajouté
Actuellement la limite est à 178956970 pixels.
MAX_IMAGE_PIXELS = int(1024 * 1024 * 1024 // 4 // 3)
Je reproduis avec l'image jointe :
ça plante à la validation du formulaire sur qommon/misc.py::get_thumbnail.
(je laisse la main)
Mis à jour par Frédéric Péters il y a environ 2 ans
- Fichier 0001-misc-double-allowed-size-for-thumbnailing-images-563.patch 0001-misc-double-allowed-size-for-thumbnailing-images-563.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Assigné à mis à Frédéric Péters
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a environ 2 ans
- Fichier 0001-misc-double-allowed-size-for-thumbnailing-images-563.patch 0001-misc-double-allowed-size-for-thumbnailing-images-563.patch ajouté
Augmentation de la limite pour faire passer les 277518290 de https://sentry.entrouvert.org/entrouvert/publik/issues/54603/ mais attrapage de l'exception et on reste sur une erreur pour les 739875840 repris dans la description de ce ticket, une limite doit être posée.
Mis à jour par Thomas Noël il y a environ 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Frédéric Péters il y a environ 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit ea7c4747c08018b4bcdeee4c2a2bf21bc36b80a5 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Mon Feb 21 09:43:05 2022 +0100 misc: double allowed size for thumbnailing images (#56305)
Mis à jour par Transition automatique il y a environ 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
misc: double allowed size for thumbnailing images (#56305)