
Avis de sécurité détaillant CVE-2026-50787, une vulnérabilité de consommation non contrôlée de ressources dans la génération de CAPTCHA e-SIC Livre, permettant un déni de service à distance via des paramètres surdimensionnés.
Une vulnérabilité de consommation de ressources existe dans le composant de génération de CAPTCHA de e-SIC Livre (esiclivre).
Le point de terminaison vulnérable accepte des paramètres contrôlés par l'utilisateur qui définissent les dimensions de l'image CAPTCHA, la taille de la police et le nombre de caractères à afficher. Ces valeurs sont utilisées sans vérification appropriée des limites.
Un attaquant distant non authentifié peut fournir des valeurs excessivement grandes, ce qui amène l'application à consommer des ressources mémoire et CPU importantes lors de la création de l'image et du rendu du texte. Cela peut entraîner des délais d'attente de l'application, des réponses HTTP 5xx, l'épuisement des workers ou un déni de service.
0a72b4c9ab89244ec3bd3d7fa0b765850cc9afd7 inclusrestrito/inc/captcha.phpLe point de terminaison accepte les paramètres GET suivants :
l - largeur de l'imagea - hauteur de l'imagetf - taille de la policeql - nombre de caractères du CAPTCHACes paramètres sont obtenus directement à partir de l'entrée utilisateur et utilisés dans les opérations de traitement d'image sans limites supérieures appropriées.
Le code vulnérable lit les valeurs directement depuis $_GET :
$largura = $_GET["l"];
$altura = $_GET["a"];
$tamanho_fonte = $_GET["tf"];
$quantidade_letras = $_GET["ql"];
captcha($largura,$altura,$tamanho_fonte,$quantidade_letras);
La largeur et la hauteur fournies sont ensuite transmises à la fonction de création d'image GD :
$imagem = imagecreate($largura,$altura);
La valeur ql contrôlée par l'utilisateur détermine également le nombre d'itérations effectuées lors du rendu des caractères du CAPTCHA :
for($i = 1; $i <= $quantidade_letras; $i++){
imagettftext(
$imagem,
$tamanho_fonte,
rand(-25,25),
($tamanho_fonte*$i),
($tamanho_fonte + 10),
$branco,
$fonte,
substr($palavra,($i-1),1)
);
}
Étant donné que ces valeurs ne sont pas limitées à des plages raisonnables, des requêtes spécialement conçues peuvent forcer l'application à effectuer des opérations excessives d'allocation d'image et de rendu de texte.
Le point de terminaison CAPTCHA vulnérable est accessible à distance.
Un attaquant peut soumettre des requêtes contenant des valeurs anormalement grandes pour les dimensions de l'image, la taille de la police ou le nombre de caractères. Le serveur tente alors de traiter ces valeurs à l'aide des opérations GD de PHP.
Cela peut entraîner :
Aucune authentification n'est requise pour atteindre la fonctionnalité vulnérable.
Une exploitation réussie peut entraîner un déni de service (DoS) par consommation incontrôlée de ressources.
L'impact dépend de la configuration PHP, des ressources système disponibles, de la configuration du serveur web et du nombre de requêtes concurrentes.
La vulnérabilité est causée par une validation insuffisante et l'absence de limites supérieures sur les paramètres contrôlés par l'utilisateur avant qu'ils ne soient transmis aux opérations d'image GD gourmandes en ressources.
L'application doit valider strictement tous les paramètres de génération du CAPTCHA avant de les traiter.
Les mesures recommandées incluent :
Des limites défensives d'exemple pourraient inclure des valeurs maximales raisonnables pour la largeur, la hauteur, la taille de la police et la longueur du CAPTCHA selon l'interface prévue de l'application.
Aucun correctif en amont n'était disponible au moment où la CVE a été demandée et attribuée.
Les utilisateurs déployant des versions concernées doivent appliquer une validation locale et des limites de ressources jusqu'à ce qu'un correctif en amont soit disponible.
Découverte et signalement par Bryan Romero https://github.com/brynax
Cet avis documente la vulnérabilité, sa cause racine technique et les mesures d'atténuation recommandées à des fins défensives et de remédiation. Il omet intentionnellement les outils automatisés de déni de service, les méthodes d'exploitation à grand volume et les instructions opérationnelles qui pourraient faciliter un abus.