← voltar
CVE-2010-1871highsob ataqueCWE-917

CVE-2010-1871

100Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.

ssvc Actcvss 8.8epss 83%
da publicação à arma1706 dias
Publicada no NVD4 de ago.
1ª PoC+1706d
metasploit19 de jul.
CISA KEV+4146d
probabilidade de exploração
83%top 1% das CVEs
exploração observada
simCISA + VulnCheck
1 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2022-06-10

Apply updates per vendor instructions.

Resumo

Falha de sanitização de entrada no JBoss Seam 2 (framework de aplicação Java), presente no jboss-seam2 como distribuído no JBoss Enterprise Application Platform 4.3.0 para Red Hat Linux. Um parâmetro de URL malicioso é interpretado como uma expressão JBoss EL (Expression Language) e processado pelo servidor sem validação, permitindo execução remota de código. A falha só é explorável quando o Java Security Manager não está corretamente configurado — uma condição que, segundo o próprio Red Hat, é comum em ambientes reais, o que explica por que está no catálogo KEV da CISA mais de dez anos depois da publicação.

Detalhamento técnico

O Seam expõe determinados parâmetros HTTP que são resolvidos via JBoss Unified Expression Language (EL) — o mecanismo usado internamente pelo framework para navegação entre páginas e binding de dados. O bug é uma falha de sanitização de entrada (o CVE não é atribuído oficialmente a um CWE pelo NVD legado; a CISA classifica como CWE-20, Improper Input Validation; a natureza do problema é consistente com injeção de EL/CWE-917): o valor do parâmetro, controlado inteiramente pelo atacante via query string, chega ao avaliador de EL sem que caracteres ou construções de expressão sejam filtrados antes do processamento.

Como o avaliador de EL do Seam permite invocação de métodos Java e resolução de propriedades em tempo de execução, uma expressão parametrizada e forjada dentro da URL pode acionar chamadas arbitrárias — na prática, execução de código no contexto do processo da aplicação. O relatório original (Meder Kydyraliev, Google Security Team, via Red Hat Bugzilla) descreve isso como 'execute arbitrary code via a URL, containing appended, specially-crafted expression language parameters'.

A correção descrita pelos mantenedores foi ajustar a forma como a expressão EL é sanitizada antes de o servidor processá-la, e não uma reescrita do motor de EL em si — ou seja, o vetor de entrada foi filtrado, não o poder de execução do EL removido.

Um detalhe pouco divulgado: a versão do Seam empacotada no JBEAP 4.2 não foi afetada; o problema é específico da versão empacotada a partir do JBEAP 4.3.0, segundo confirmação da equipe de segurança do Red Hat na thread do bug.

Como é explorada

O vetor é uma requisição HTTP simples e não autenticada: o atacante anexa à URL um parâmetro cujo valor contém uma expressão EL forjada, direcionado a uma aplicação Java construída sobre o JBoss Seam 2 e hospedada em JBEAP 4.3.0. Não é necessária autenticação prévia (PR:N no CVSS), nem interação além de o servidor processar a requisição — embora o vetor CVSS marque UI:R, o que sugere alguma forma de indução (por exemplo, convencer a vítima a acessar um link) em certos cenários de exploração refletida.

O pré-requisito decisivo, e que a manchete do CVE já adianta mas que costuma ser ignorado, é a configuração do Java Security Manager: se ele estiver ausente ou mal configurado (cenário comum, já que habilitá-lo corretamente exige políticas de segurança específicas e nem sempre é padrão em deploys de produção), a expressão EL maliciosa tem liberdade para invocar classes e métodos Java sem restrição de sandbox, viabilizando execução arbitrária de código no contexto do processo do servidor de aplicação.

Existe módulo Metasploit público e PoC divulgada, o que reduz a complexidade prática de exploração a praticamente copiar/colar contra um alvo vulnerável identificado. A presença no catálogo KEV da CISA (adicionada em 2021-12-10, apesar da publicação original em 2010) confirma exploração ativa observada muito depois da divulgação original — reflexo de quão longeva é a base de instalações legadas de JBEAP/Seam ainda expostas e sem Security Manager configurado.

Versões

Afetadas
JBoss Seam 2 (jboss-seam2) como distribuído no JBoss Enterprise Application Platform 4.3.0 para Red Hat Linux (RHEL 4 e RHEL 5). Confirmado pelo Red Hat que o JBEAP 4.2 não foi afetado. Na linha upstream do Seam, o problema afeta versões anteriores à correção aplicada em 2.2.1.CR2.
Corrigidas em
JBoss EAP 4.3.0 para RHEL 4 e RHEL 5, corrigido via RHSA-2010:0564. Upstream: Seam 2.2.1.CR2 e posteriores.

Como se proteger

A correção primária é aplicar a atualização do fornecedor: para JBoss EAP 4.3.0 em RHEL 4 e RHEL 5, o pacote corrigido foi distribuído via RHSA-2010:0564. No lado do projeto upstream, o Seam corrigiu o problema na sanitização da expressão EL a partir da versão 2.2.1.CR2 (anunciada pela comunidade Seam em setembro de 2010).

Se a atualização não for viável no curto prazo, o próprio fornecedor aponta o controle compensatório real: configurar e habilitar corretamente o Java Security Manager. Segundo o Red Hat, isso impede a exploração mesmo em versões vulneráveis, pois restringe o que o código invocado via EL pode fazer no sistema. Não há, nas fontes oficiais, indicação de que desabilitar funcionalidades específicas do Seam ou aplicar apenas regras de WAF genéricas seja suficiente — expressões EL maliciosas podem ser codificadas de várias formas, e um filtro de padrão de string é frágil contra variações de sintaxe EL.

Vale notar que a simples presença de uma versão 'não vulnerável' do JBEAP (4.2, por exemplo) não garante segurança se a aplicação usa uma versão standalone do Seam vulnerável — o escopo oficial do CVE é o pacote jboss-seam2 como usado no JBEAP 4.3.0, mas o mecanismo de fundo (sanitização de EL) é relevante para qualquer deploy Seam 2.x anterior à correção upstream.

Como detectar

Procure em logs de acesso web por requisições com parâmetros de URL contendo sintaxe de expressão EL (padrões como '#{' ou '${') anexados a nomes de parâmetro não usuais, direcionadas a aplicações baseadas em JBoss Seam. Assinaturas de IDS/WAF para o módulo Metasploit associado a este CVE ('jboss_seam_exploit') também são um indicador direto de tentativa. Como não há um campo ou endpoint fixo documentado publicamente pelas fontes oficiais, um sinal indireto mais confiável em ambientes comprometidos é a criação anômala de processos filho (shell, comandos de sistema) a partir do processo Java do servidor de aplicação — comportamento característico de execução de código bem-sucedida via EL.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
JBoss Seam 2 (jboss-seam2), as used in JBoss Enterprise Application Platform 4.3.0 for Red Hat Linux, does not properly sanitize inputs for JBoss Expression Language (EL) expressions, which allows remote attackers to execute arbitrary code via a crafted URL. NOTE: this is only a vulnerability when the Java Security Manager is not properly configured.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Produtos afetados
n/a · n/a
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.