Projet

Général

Profil

Development #56305

vignette d'images trop grandes

Ajouté par Frédéric Péters il y a plus de 2 ans. Mis à jour il y a environ 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
23 août 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Révision ea7c4747 (diff)
Ajouté par Frédéric Péters il y a environ 2 ans

misc: double allowed size for thumbnailing images (#56305)

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Description mis à jour (diff)
#2

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)

#3

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).

#4

Mis à jour par Nicolas Roche il y a plus de 2 ans

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)

#5

Mis à jour par Frédéric Péters il y a environ 2 ans

#6

Mis à jour par Frédéric Péters il y a environ 2 ans

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.

#7

Mis à jour par Thomas Noël il y a environ 2 ans

  • Statut changé de Solution proposée à Solution validée
#8

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)
#9

Mis à jour par Transition automatique il y a environ 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#10

Mis à jour par Transition automatique il y a presque 2 ans

Automatic expiration

Formats disponibles : Atom PDF