Apache Commons FileUpload est une bibliothèque Java populaire qui permet aux développeurs de gérer les transferts de fichiers HTTP. Malheureusement, avant la version 1.5, la bibliothèque était sujette à une vulnérabilité de type Déni de Service (DoS), identifiée sous le nom de CVE-2023-24998, qui pouvait être exploitée par des attaquants pour surcharger le serveur en envoyant un nombre excessif de parties de requêtes.
La vulnérabilité existait car la bibliothèque ne disposait pas d’une option intégrée pour limiter le nombre de parties de requêtes qui pouvaient être traitées. En conséquence, un attaquant pouvait télécharger un grand nombre de fichiers ou une série de petits fichiers, ce qui épuisait finalement les ressources du serveur et provoquait un DoS.
Pour corriger ce problème, l’équipe d’Apache Commons FileUpload a introduit une nouvelle option de configuration, FileUploadBase#setFileCountMax
, qui permet aux développeurs de définir une limite sur le nombre de parties de requêtes pouvant être traitées. Cette option n’est pas activée par défaut, les développeurs doivent donc la configurer explicitement dans leur code.
La correction de la vulnérabilité peut être observée dans le commit e20c0499. Les modifications apportées au code ont ajouté une nouvelle méthode appelée setMaxFileCount
à la classe FileUploadBase
, qui permet aux développeurs de définir le nombre maximal de fichiers pouvant être téléchargés dans une seule requête. La méthode vérifie si le nombre de fichiers dépasse la limite configurée et lance une SizeLimitExceededException
si c’est le cas, empêchant ainsi le serveur de traiter la requête plus avant et atténuant l’attaque DoS.
En conclusion, l’équipe d’Apache Commons FileUpload a corrigé une importante vulnérabilité DoS dans la version 1.5 en introduisant une nouvelle option de configuration pour limiter le nombre de parties de requêtes pouvant être traitées.