
Advisory de segurança detalhando CVE-2026-50787, uma vulnerabilidade de consumo descontrolado de recursos na geração de CAPTCHA do e-SIC Livre, permitindo negação de serviço remota por meio de parâmetros superdimensionados.
Existe uma vulnerabilidade de consumo de recursos no componente de geração de CAPTCHA do e-SIC Livre (esiclivre).
O endpoint vulnerável aceita parâmetros controlados pelo usuário que definem as dimensões da imagem CAPTCHA, o tamanho da fonte e o número de caracteres a serem renderizados. Esses valores são usados sem a devida verificação de limites.
Um atacante remoto não autenticado pode fornecer valores excessivamente grandes, fazendo com que a aplicação consuma memória e recursos de CPU significativos durante a criação da imagem e a renderização do texto. Isso pode resultar em timeouts da aplicação, respostas HTTP 5xx, esgotamento dos workers ou negação de serviço.
0a72b4c9ab89244ec3bd3d7fa0b765850cc9afd7restrito/inc/captcha.phpO endpoint aceita os seguintes parâmetros GET:
l - largura da imagema - altura da imagemtf - tamanho da fonteql - número de caracteres do CAPTCHAEsses parâmetros são obtidos diretamente da entrada do usuário e usados em operações de processamento de imagem sem limites superiores adequados.
O código vulnerável lê valores diretamente de $_GET:
$largura = $_GET["l"];
$altura = $_GET["a"];
$tamanho_fonte = $_GET["tf"];
$quantidade_letras = $_GET["ql"];
captcha($largura,$altura,$tamanho_fonte,$quantidade_letras);
A largura e a altura fornecidas são posteriormente passadas para a função de criação de imagem GD:
$imagem = imagecreate($largura,$altura);
O valor ql controlado pelo usuário também determina o número de iterações executadas ao renderizar os caracteres do 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)
);
}
Como esses valores não são limitados a faixas razoáveis, solicitações especialmente elaboradas podem forçar a aplicação a executar operações excessivas de alocação de imagem e renderização de texto.
O endpoint CAPTCHA vulnerável é acessível remotamente.
Um atacante pode enviar solicitações contendo valores anormalmente grandes para as dimensões da imagem, tamanho da fonte ou número de caracteres. O servidor então tenta processar esses valores usando operações GD do PHP.
Isso pode levar a:
Nenhuma autenticação é necessária para acessar a funcionalidade vulnerável.
A exploração bem-sucedida pode resultar em Negação de Serviço (DoS) por meio do consumo descontrolado de recursos.
O impacto depende da configuração do PHP, dos recursos disponíveis do sistema, da configuração do servidor web e do número de solicitações concorrentes.
A vulnerabilidade é causada por validação insuficiente e falta de limites superiores nos parâmetros controlados pelo usuário antes de serem passados para operações de imagem GD que consomem muitos recursos.
A aplicação deve validar rigorosamente todos os parâmetros de geração do CAPTCHA antes de processá-los.
As medidas recomendadas incluem:
Exemplos de limites defensivos poderiam incluir valores máximos razoáveis para largura, altura, tamanho da fonte e comprimento do CAPTCHA de acordo com a interface pretendida da aplicação.
Nenhuma correção upstream estava disponível no momento em que o CVE foi solicitado e atribuído.
Usuários que implantam versões afetadas devem aplicar validação local e limites de recursos até que uma correção upstream esteja disponível.
Descoberto e relatado por Bryan Romero https://github.com/brynax
Este aviso documenta a vulnerabilidade, sua causa raiz técnica e mitigações recomendadas para fins defensivos e de remediação. Ele omite intencionalmente ferramentas automatizadas de negação de serviço, métodos de exploração em alto volume e instruções operacionais que poderiam facilitar o abuso.