Falha no apache struts permite execução remota de código em mapeador legado

3 минут чтения

Falha no Apache Struts permite execução de código em mapeador legado

O Apache Struts corrigiu quatro vulnerabilidades que podem afetar aplicações web construídas com o framework. A mais grave, identificada como CVE-2026-104711, pode permitir que um invasor execute código remotamente sem autenticação. Para que o ataque seja possível, porém, a aplicação precisa estar configurada para usar um mapeador RESTful antigo.

Esse detalhe limita o alcance da falha. Aplicações que utilizam o mapeador padrão do Struts, o `restful2` ou o plugin REST do próprio framework não são afetadas por esse problema. Nas versões da série 7.x, a vulnerabilidade só se manifesta quando a lista de permissões do OGNL está desativada.

O componente vulnerável interpreta partes da URL para identificar ações e parâmetros da aplicação. No mapeador legado, esse processamento pode permitir a entrada de uma expressão OGNL maliciosa, usada para tentar executar instruções no servidor. Como o ataque não exige credenciais, sistemas expostos à internet e configurados dessa forma precisam ser tratados com prioridade.

A falha atinge as versões 2.0.0 a 2.3.37, 2.5.0 a 2.5.33, 6.0.0 a 6.11.0 e 7.0.0 a 7.3.0. As correções estão disponíveis a partir da versão 7.4.0 e na 6.12.0 para quem utiliza a linha 6. A atualização para uma versão corrigida é a medida recomendada para eliminar o risco.

As outras três vulnerabilidades não permitem execução de código, mas ainda podem prejudicar a disponibilidade ou a confiabilidade do serviço. Duas delas podem ser exploradas para causar negação de serviço: uma permite que requisições pequenas provoquem respostas desproporcionalmente grandes, consumindo processamento e largura de banda; a outra pode esgotar a memória do servidor porque aceita corpos de requisição sem um limite adequado.

Para reduzir esse segundo risco, foi estabelecido um limite padrão de 2.097.152 caracteres para o corpo das requisições. Essa é a única das quatro falhas classificada como importante; as demais receberam severidade moderada.

A quarta vulnerabilidade tem um comportamento diferente. Ela decorre do compartilhamento de formatadores de mensagens entre requisições simultâneas. Sob tráfego normal, essa condição pode causar erros na renderização ou expor dados, sem que seja necessário enviar uma requisição especialmente preparada para explorar o problema.

Administradores devem começar verificando qual mapeador está habilitado em cada aplicação, além da versão do Struts instalada. Não basta confirmar que o sistema utiliza o framework: é necessário identificar se ele depende do componente legado e, no caso da série 7.x, conferir também se as proteções de OGNL estão ativas.

A atualização deve ser testada em ambiente controlado antes de chegar à produção, especialmente em aplicações antigas ou que dependem de configurações personalizadas. A validação ajuda a identificar incompatibilidades e evita que uma mudança de versão interrompa funções importantes do sistema. Depois da implantação, é recomendável confirmar que o serviço está executando a versão corrigida.

Quando a atualização imediata não for possível, a equipe de segurança deve avaliar medidas temporárias de contenção. Entre elas estão restringir o acesso à aplicação, reduzir a exposição de serviços públicos e aplicar limites para o tamanho das requisições e o consumo de recursos. Essas ações podem diminuir a possibilidade de abuso, mas não substituem a instalação das correções.

Também é importante observar registros do servidor e sinais de comportamento incomum, como aumento repentino de uso de memória, tráfego elevado ou falhas inesperadas na renderização. A análise dos logs pode ajudar a identificar tentativas de exploração ou efeitos das vulnerabilidades, embora a ausência de alertas não comprove que o sistema esteja protegido.

A correção das quatro falhas deve fazer parte de uma revisão mais ampla da configuração do Struts. Aplicações que ainda dependem de componentes antigos podem acumular riscos adicionais, por isso equipes de desenvolvimento e infraestrutura devem documentar dependências, remover opções desnecessárias e manter um processo regular de atualização dos componentes utilizados.