
Security advisory, описывающий CVE-2026-50787 — уязвимость неконтролируемого потребления ресурсов в генерации CAPTCHA e-SIC Livre, позволяющую удалённый отказ в обслуживании через чрезмерно большие параметры.
Уязвимость, связанная с потреблением ресурсов, существует в компоненте генерации CAPTCHA в e-SIC Livre (esiclivre).
Уязвимая конечная точка принимает управляемые пользователем параметры, которые определяют размеры изображения CAPTCHA, размер шрифта и количество отображаемых символов. Эти значения используются без соответствующей проверки границ.
Неаутентифицированный удалённый злоумышленник может указать чрезмерно большие значения, что приведёт к значительному потреблению памяти и ресурсов процессора при создании изображения и отрисовке текста. Это может привести к тайм-аутам приложения, ответам HTTP 5xx, исчерпанию рабочих процессов или отказу в обслуживании.
0a72b4c9ab89244ec3bd3d7fa0b765850cc9afd7 включительноrestrito/inc/captcha.phpКонечная точка принимает следующие GET-параметры:
l — ширина изображенияa — высота изображенияtf — размер шрифтаql — количество символов CAPTCHAЭти параметры берутся непосредственно из пользовательского ввода и используются в операциях обработки изображений без соответствующих верхних границ.
Уязвимый код считывает значения напрямую из $_GET:
$largura = $_GET["l"];
$altura = $_GET["a"];
$tamanho_fonte = $_GET["tf"];
$quantidade_letras = $_GET["ql"];
captcha($largura,$altura,$tamanho_fonte,$quantidade_letras);
Указанные ширина и высота впоследствии передаются в функцию создания изображения GD:
$imagem = imagecreate($largura,$altura);
Управляемое пользователем значение ql также определяет количество итераций, выполняемых при отрисовке символов 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)
);
}
Поскольку эти значения не ограничены разумными пределами, специально созданные запросы могут заставить приложение выполнять чрезмерное выделение памяти под изображения и операции отрисовки текста.
Уязвимая конечная точка CAPTCHA доступна удалённо.
Злоумышленник может отправлять запросы, содержащие аномально большие значения размеров изображения, размера шрифта или количества символов. Сервер затем пытается обработать эти значения с помощью операций PHP GD.
Это может привести к:
Для доступа к уязвимой функциональности не требуется аутентификация.
Успешная эксплуатация может привести к отказу в обслуживании (DoS) из-за неконтролируемого потребления ресурсов.
Воздействие зависит от конфигурации PHP, доступных системных ресурсов, конфигурации веб-сервера и количества одновременных запросов.
Уязвимость вызвана недостаточной проверкой и отсутствием верхних границ для управляемых пользователем параметров перед их передачей в ресурсоёмкие операции GD по обработке изображений.
Приложение должно строго проверять все параметры генерации CAPTCHA перед их обработкой.
Рекомендуемые меры включают:
Примеры защитных ограничений могут включать разумные максимальные значения ширины, высоты, размера шрифта и длины CAPTCHA в соответствии с предполагаемым интерфейсом приложения.
На момент запроса и присвоения CVE доступного исправления от вышестоящего проекта не было.
Пользователям, разворачивающим затронутые версии, следует применить локальную проверку и ограничения ресурсов до появления исправления от вышестоящего проекта.
Обнаружено и сообщено Bryan Romero https://github.com/brynax
Данное уведомление документирует уязвимость, её техническую первопричину и рекомендуемые меры по смягчению последствий в защитных целях и для устранения проблемы. В нём намеренно опущены инструменты автоматизированного отказа в обслуживании, методы эксплуатации с высокой нагрузкой и операционные инструкции, которые могли бы способствовать злоупотреблению.