CVE-2015-7450
Corrija agora. Ela está sob exploração confirmada pelo CISA, tem exploit funcional público e 1 grupo(s) de ameaça a utilizam.
Grupos conhecidos por explorar esta vulnerabilidade (atribuição MITRE ATT&CK).
Apply updates per vendor instructions.
Resumo
CVE-2015-7450 é a vulnerabilidade de desserialização insegura em Java que afeta múltiplos produtos IBM — confirmada em relatórios oficiais para WebSphere Application Server e IBM Cognos Controller — através do uso da biblioteca Apache Commons Collections. O problema não está no código IBM em si, mas numa gadget chain publicada em novembro de 2015 (InvokerTransformer, dentro do ACC) que transforma qualquer endpoint que desserialize objetos Java arbitrários em execução remota de código sem autenticação. Está no catálogo KEV da CISA por exploração ativa confirmada e tem módulo Metasploit público, o que a torna prioridade real de patch, não apenas número de CVSS alto.
Detalhamento técnico
A falha raiz (CWE-94, injeção de código) está na classe InvokerTransformer da biblioteca Apache Commons Collections (versões anteriores a 3.2.2/4.1). Essa classe permite invocar, via reflexão, qualquer método arbitrário sobre um objeto durante a desserialização — combinada com outras classes do pacote (ChainedTransformer, LazyMap, AnnotationInvocationHandler), forma uma 'gadget chain' que executa código Java arbitrário no momento em que a JVM lê um stream serializado malicioso, antes de qualquer verificação de tipo ou lógica de negócio da aplicação.
Produtos IBM ficam vulneráveis não porque implementaram algo errado, mas porque expõem interfaces que aceitam objetos Java serializados de origem não confiável — nesse caso, o SOAP Connector administrativo do WebSphere Application Server (porta padrão 8880) e, separadamente, componentes do Cognos Controller que empacotam a mesma versão vulnerável do Commons Collections como dependência transitiva.
O atacante controla o conteúdo completo do stream serializado enviado ao endpoint; a JVM alvo, ao desserializá-lo com readObject(), invoca a cadeia de transformers embutida e executa o comando definido pelo atacante (tipicamente via Runtime.exec ou InvokerTransformer chamando getRuntime/exec) com os privilégios do processo do servidor de aplicação. Não há validação de assinatura, whitelist de classes ou sandboxing nas versões vulneráveis.
Como é explorada
O vetor documentado publicamente contra WebSphere é uma requisição SOAP não autenticada ao SOAP Connector (porta 8880 por padrão), enviando o payload serializado malicioso dentro do campo objectname de uma chamada getAttribute ao AdminService. O módulo Metasploit público (rank 'Excellent') automatiza essa requisição completa, incluindo geração do payload via ysoserial (CommonsCollections1) e staging de payload nativo via PowerShell — não exige autenticação prévia, apenas acesso de rede ao SOAP Connector exposto.
Para Cognos Controller e outros produtos IBM listados na descrição oficial, o vetor específico não foi detalhado nas fontes lidas; o mecanismo geral é o mesmo — qualquer interface que aceite e desserialize objetos Java serializados de entrada não confiável, usando uma versão vulnerável do Commons Collections no classpath, é explorável da mesma forma.
A CISA lista exploração confirmada em ambiente real (KEV, adicionado em 10/01/2022, prazo de correção 10/07/2022), e existe PoC pública além do exploit-db/Metasploit. Como não há autenticação, interação do usuário nem configuração fora do padrão exigidas — apenas exposição de rede ao serviço vulnerável — a barreira prática de exploração é baixa para quem já identificou o endpoint alcançável.
Versões
Como se proteger
IBM corrigiu via Interim Fix e Fix Packs específicos por versão de WebSphere Application Server: para 7.0.0.0–7.0.0.39 aplicar Fix Pack 41 (7.0.0.41) ou Interim Fix PI52103; para 8.0.0.0–8.0.0.11 aplicar Fix Pack 12 (8.0.0.12) ou PI52103; para 8.5.0.0–8.5.5.7 aplicar Fix Pack 8 (8.5.5.8) ou PI52103; para Liberty, aplicar Fix Pack 8.5.5.8 ou Interim Fix PI52103, e para os jars de developer extras (EJB Embeddable Container e JPA Client) atualizar para wlp-extras-17.0.0.4 ou posterior. Para Cognos Controller, as versões corrigidas são: 10.2.1 FP2 IF2, 10.2 FP1 IF4, 10.1.1 FP3 IF4, 10.1 IF6 e 8.5.1 FP1 IF3; usuários da 8.5 devem contatar o suporte IBM, pois não há fix pack listado para essa versão. O boletim de Cognos Controller declara explicitamente 'Workarounds and Mitigations: None' — não há paliativo oficial reconhecido pelo fornecedor além de aplicar o fix.
Como controle compensatório real quando a atualização não é imediata: restringir acesso de rede ao SOAP Connector do WebSphere (porta 8880/8883) apenas a hosts administrativos confiáveis, já que a exploração documentada depende de alcançar esse serviço diretamente. Isso reduz a superfície mas não corrige a causa raiz — a biblioteca vulnerável continua no classpath e qualquer outro ponto de desserialização exposto (presente ou futuro) permanece explorável.
Não funciona como mitigação: apenas trocar a versão do Commons Collections isoladamente sem aplicar os patches/fix packs do produto IBM, pois os pontos de integração (Liberty features jsf-2.0, jsf-2.2, jpa-2.0, ou os jars de developer extras) podem reintroduzir a versão vulnerável como dependência empacotada separadamente do runtime principal.
Como detectar
No SOAP Connector do WebSphere, requisições POST não autenticadas para o endpoint AdminService (ação SOAPAction 'urn:AdminService', método getAttribute) contendo streams base64 longos e incomuns no campo objectname — especialmente cadeias associadas a assinaturas de classes como sun.reflect.annotation.AnnotationInvocationHandler, org.apache.commons.collections.functors.InvokerTransformer ou ChainedTransformer no payload decodificado — são fortes indicadores de tentativa de exploração via ysoserial/CommonsCollections1. Tráfego para a porta administrativa 8880/8883 originado de fora da rede de gerenciamento também é sinal de alerta.
Para os demais produtos IBM cobertos pela CVE, não há assinatura de detecção específica documentada nas fontes consultadas; monitorar logs de aplicação por exceções de desserialização (ClassNotFoundException, InvalidClassException) ou execução inesperada de processos filhos pela JVM do servidor de aplicação é o sinal genérico mais confiável na ausência de detecção dedicada.