← volver
CVE-2022-22963criticalbajo ataqueCWE-94

CVE-2022-22963

100Vexday Risk Score

Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.

ssvc Actcvss 9.8epss 100%
de la publicación al arma0 días
Publicada en NVD1 abr
1ª PoC26 mar
metasploit29 mar
CISA KEV+146d
probabilidad de explotación
100%top 1% de las CVE
explotación observada
CISA + VulnCheck
50 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2022-09-15

Apply updates per vendor instructions.

Resumen

Falha crítica no Spring Cloud Function que permite RCE não autenticado através de uma expressão SpEL (Spring Expression Language) enviada pelo atacante como cabeçalho de roteamento HTTP. Afeta qualquer aplicação que use a funcionalidade de routing do framework, mesmo sem endpoints de negócio expostos — o próprio mecanismo de roteamento interno é o vetor. Está no catálogo KEV da CISA com exploração confirmada e possui PoC pública, módulo Metasploit e template Nuclei, o que a torna trivial de varrer em massa.

Detalle técnico

Spring Cloud Function implementa uma funcionalidade de roteamento dinâmico de funções via o cabeçalho HTTP (ou atributo de mensagem) `spring.cloud.function.routing-expression`. O valor desse campo é avaliado pelo framework como uma expressão SpEL para decidir qual bean de função invocar. O problema é que a aplicação avalia essa expressão sem qualquer sanitização ou sandboxing, tratando input externo como código a ser interpretado — uma injeção de expressão que dá ao atacante acesso à API Java completa via SpEL (reflexão, instanciação de classes, invocação de métodos arbitrários).

O advisory da VMware referencia CWE-770 (alocação de recursos sem limites) e CWE-497 (exposição de informação de controle a esfera não autorizada), mas o catálogo KEV da CISA classifica a falha como CWE-94 (injeção de código), que descreve melhor o mecanismo prático: o atacante controla integralmente o conteúdo avaliado como SpEL, sem qualquer filtro de classes ou métodos permitidos.

O ponto crítico é que essa avaliação ocorre na camada de roteamento, antes de qualquer lógica de negócio da aplicação ser executada. Isso significa que não é necessário que exista uma função ou rota legítima correspondente ao payload — basta que a aplicação tenha a dependência do Spring Cloud Function com routing habilitado e um endpoint HTTP exposto, qualquer endpoint, para o cabeçalho ser processado.

Cómo se explota

O vetor é uma requisição HTTP simples (tipicamente POST) contra qualquer endpoint exposto pela aplicação Spring Cloud Function, incluindo o cabeçalho `spring.cloud.function.routing-expression` com uma expressão SpEL manipulada. Não há necessidade de autenticação (PR:N no CVSS), interação do usuário ou acesso prévio à rede interna — só é preciso alcançar a porta HTTP da aplicação vulnerável. A complexidade de ataque é baixa (AC:L): a expressão SpEL, uma vez processada, pode invocar classes Java para execução de comandos no sistema operacional subjacente ao processo Java.

O impacto declarado é execução remota de código com os privilégios do processo da aplicação, além de acesso a recursos locais do sistema (leitura de arquivos, variáveis de ambiente, etc.), conforme o próprio texto do advisory. Como a exploração não depende de rotas de negócio específicas, scanners automatizados conseguem testar a presença da falha injetando expressões inofensivas (ex.: operações aritméticas) e observando o efeito na resposta, antes de escalar para payloads de execução de comando.

A CISA adicionou a CVE ao catálogo KEV em 25/08/2022 com prazo de correção em 15/09/2022, confirmando exploração ativa no mundo real. A disponibilidade pública de PoC, módulo Metasploit e template Nuclei desde pouco depois da divulgação (29/03/2022) tornou a varredura em massa contra instâncias expostas rápida e generalizada — é o padrão de exploração esperado para uma vulnerabilidade dessa classe, análoga em espírito ao Spring4Shell divulgado na mesma janela de tempo.

Versiones

Afectadas
Spring Cloud Function 3.2.2 e anteriores (linha 3.2.x), 3.1.6 e anteriores (linha 3.1.x), e versões mais antigas sem suporte.
Corregidas en
3.2.3 e 3.1.7 (branches OSS correspondentes).

Cómo protegerse

A correção oficial é atualizar o Spring Cloud Function. A Cisco, ao investigar seus produtos, declarou explicitamente que não existe workaround que endereça essa vulnerabilidade — a única mitigação real é a atualização de versão. Não há flag de configuração documentada pelo fornecedor para desabilitar a avaliação da expressão de roteamento sem atualizar o código.

Se a atualização imediata não for viável, os controles compensatórios praticáveis são: bloquear ou sanitizar no WAF/proxy reverso qualquer requisição contendo o cabeçalho `spring.cloud.function.routing-expression` com conteúdo que não corresponda a um valor de roteamento simples esperado (nome de função), e restringir o acesso de rede ao serviço apenas a clientes confiáveis enquanto o patch não é aplicado. Nenhuma dessas medidas substitui o patch — são paliativos para reduzir a janela de exposição.

Não funciona como mitigação: remover apenas o endpoint de rota principal da aplicação ou desabilitar autenticação de outras camadas, já que a avaliação da expressão ocorre no roteamento interno do framework independentemente da lógica de negócio exposta.

Cómo detectar

Em logs de acesso HTTP/aplicação, procurar pela presença do cabeçalho `spring.cloud.function.routing-expression` (ou parâmetro equivalente) contendo tokens típicos de SpEL malicioso, como `T(`, referências a `java.lang.Runtime`, `ProcessBuilder`, `exec`, ou sequências de caracteres incomuns para um nome de função de roteamento legítimo (que normalmente seria um identificador simples). A Cisco publicou regras Snort específicas (SID 59388 e 59416) para detecção de tráfego de exploração na rede.

Como o disparo inicial de varreduras automatizadas frequentemente usa payloads de teste inofensivos (expressões aritméticas simples) antes de escalar, a ausência de comandos de sistema óbvios no log não garante que não houve tentativa de reconhecimento — qualquer valor não trivial nesse cabeçalho, vindo de origem não confiável, deve ser tratado como indicador de tentativa de exploração.

Investigado y redactado con IA a partir del advisory del fabricante y análisis públicos, con las fuentes citadas. Verifica siempre la versión corregida en el advisory oficial antes de actuar.
In Spring Cloud Function versions 3.1.6, 3.2.2 and older unsupported versions, when using routing functionality it is possible for a user to provide a specially crafted SpEL as a routing-expression that may result in remote code execution and access to local resources.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Productos afectados
n/a · Spring Cloud Function
PoCs públicas encontradas50
exploitdbwww.exploit-db.com/exploits/51577no verificadogithubgithub.com/hktalent/spring-spel-0day-poc354githubgithub.com/dinosn/CVE-2022-22963115githubgithub.com/darryk10/CVE-2022-2296334githubgithub.com/J0ey17/CVE-2022-22963_Reverse-Shell-Exploit24githubgithub.com/me2nuk/CVE-2022-2296319githubgithub.com/RanDengShiFu/CVE-2022-2296315githubgithub.com/kh4sh3i/Spring-CVE14githubgithub.com/Kirill89/CVE-2022-22963-PoC9githubgithub.com/charis3306/CVE-2022-229638githubgithub.com/k3rwin/spring-cloud-function-rce8githubgithub.com/iliass-dahman/CVE-2022-22963-POC4githubgithub.com/lemmyz4n3771/CVE-2022-22963-PoC4githubgithub.com/randallbanner/Spring-Cloud-Function-Vulnerability-CVE-2022-22963-RCE4githubgithub.com/stevemats/Spring0DayCoreExploit3githubgithub.com/twseptian/cve-2022-229632githubgithub.com/SealPaPaPa/SpringCloudFunction-Research1githubgithub.com/AayushmanThapaMagar/CVE-2022-229631githubgithub.com/puckiestyle/CVE-2022-229631githubgithub.com/SourM1lk/CVE-2022-22963-Exploit1githubgithub.com/xmqaq/CVE-2022-229631githubgithub.com/808rsec/CVE-2022-229630githubgithub.com/G01d3nW01f/CVE-2022-229630githubgithub.com/75ACOL/CVE-2022-229630githubgithub.com/gunzf0x/CVE-2022-229630githubgithub.com/nikn0laty/RCE-in-Spring-Cloud-CVE-2022-229630githubgithub.com/Mustafa1986/CVE-2022-229630githubgithub.com/BearClaw96/CVE-2022-22963-Poc-Bearcules0githubgithub.com/jrbH4CK/CVE-2022-229630githubgithub.com/Shayz614/CVE-2022-229630githubgithub.com/cyberager/CVE-2022-229630vulncheckvulncheck.com/xdb/1066ae419f9bno verificadovulncheckvulncheck.com/xdb/c00844238ab5no verificadovulncheckvulncheck.com/xdb/365b57443ae6no verificadovulncheckvulncheck.com/xdb/e2c12294de2eno verificadovulncheckvulncheck.com/xdb/8182bb40e66ano verificadovulncheckvulncheck.com/xdb/698c9d96f1d6no verificadovulncheckvulncheck.com/xdb/6857dd5dc99eno verificadovulncheckvulncheck.com/xdb/a05078d88fe4no verificadovulncheckvulncheck.com/xdb/fed25e003946no verificadocve_referencepacketstormsecurity.com/files/173430/Spring-Cloud-3.2.2-Remote-Command-Execution.htmlno verificadovulncheckvulncheck.com/xdb/b3ed0886366bno verificadovulncheckvulncheck.com/xdb/b67b2f1cc825no verificadovulncheckvulncheck.com/xdb/5922af7bf5b9no verificadovulncheckvulncheck.com/xdb/8fdc0fdf513eno verificadovulncheckvulncheck.com/xdb/25acfb6faf58no verificadovulncheckvulncheck.com/xdb/28f51035796bno verificadovulncheckvulncheck.com/xdb/a1c6ea2e02bcno verificadovulncheckvulncheck.com/xdb/e735e076c22dno verificadovulncheckvulncheck.com/xdb/28fa125e7119no verificado
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.