← voltar
CVE-2022-22947criticalsob ataqueCWE-94

CVE-2022-22947

100Vexday Risk Score

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

ssvc Actcvss 10epss 98%
da publicação à arma0 dias
Publicada no NVD3 de mar.
1ª PoC25 de jan.
metasploit26 de jan.
CISA KEV+74d
probabilidade de exploração
98%top 1% das CVEs
exploração observada
simCISA + VulnCheck
89 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2022-06-06

Apply updates per vendor instructions.

Resumo

Spring Cloud Gateway, quando expõe o endpoint Actuator de gateway sem autenticação, permite que um atacante remoto crie rotas dinâmicas contendo expressões SpEL maliciosas, resultando em execução arbitrária de código no host. O CVSS 10.0 é justificado tecnicamente, mas a exploração depende de uma configuração específica — endpoint 'gateway' habilitado e exposto — que não é o padrão do Spring Boot Actuator em produção bem configurada.

Detalhamento técnico

A falha é um code injection (CWE-94) no endpoint Actuator 'gateway' do Spring Cloud Gateway. Esse endpoint permite gerenciar rotas em tempo de execução via API REST (criar, atualizar, remover rotas e disparar refresh), e as definições de rota aceitam filtros e predicates que suportam Spring Expression Language (SpEL) para lógica dinâmica de roteamento.

O problema é que o atacante controla o conteúdo desses filtros/predicates ao submeter uma nova definição de rota via requisição HTTP ao endpoint Actuator. Como o valor é avaliado como expressão SpEL pelo motor interno do Spring, uma expressão maliciosa embutida no campo é executada no contexto da JVM da aplicação, com os mesmos privilégios do processo Spring Cloud Gateway.

O vetor completo normalmente envolve duas chamadas: uma para registrar/atualizar a rota malformada no endpoint de gerenciamento, e outra para forçar o refresh das rotas, momento em que a expressão é avaliada. Não há validação ou sanitização do conteúdo aceito nesses campos antes de submetê-lo ao interpretador SpEL — o problema clássico de tratar entrada de usuário como código confiável.

Como é explorada

Pré-requisito central: o endpoint Actuator 'gateway' precisa estar habilitado (management.endpoint.gateway.enabled) e exposto na web (incluído em management.endpoints.web.exposure.include), sem proteção de autenticação via Spring Security. Isso não é o comportamento padrão de todo deployment — mas é comum em ambientes que habilitam Actuator amplamente para observabilidade sem restringir exposição, e foi exatamente esse cenário que tornou a CVE crítica em massa.

A exploração não exige autenticação (PR:N) nem interação do usuário (UI:N), apenas acesso de rede ao endpoint HTTP exposto. Não há complexidade de exploração relevante: a técnica é registrada em ferramentas públicas (módulo Metasploit, templates Nuclei, PoCs), o que reduz drasticamente a barreira técnica — inclusive para scanners automatizados de internet.

A CISA confirma exploração ativa em massa (KEV, adicionada em 16/05/2022, prazo de correção 06/06/2022), coerente com o padrão observado em CVEs críticas de RCE não autenticado expostas na internet: campanhas de scan em massa começam dias após a publicação do PoC. O resultado final da exploração é execução arbitrária de código no host, com o mesmo nível de privilégio do processo da aplicação — tipicamente suficiente para shell reverso, exfiltração ou pivotamento lateral.

Versões

Afetadas
Spring Cloud Gateway 3.1.0 (apenas essa versão na linha 3.1.x) e 3.0.6 e versões anteriores na linha 3.0.x, conforme advisory oficial da VMware/Tanzu.
Corrigidas em
3.1.1 (linha 3.1.x) e 3.0.7 (linha 3.0.x), disponíveis como OSS conforme advisory oficial.

Como se proteger

A correção do fornecedor é atualizar para Spring Cloud Gateway 3.1.1 (branch 3.1.x) ou 3.0.7 (branch 3.0.x). Não há indicação de backport para versões anteriores a 3.0 no advisory oficial — se seu deployment estiver em uma linha mais antiga não coberta por esses branches, trate como sem patch disponível e aplique os controles abaixo.

Se a atualização não for imediata, o paliativo real citado pelo próprio fornecedor é desabilitar o endpoint Actuator de gateway via `management.endpoint.gateway.enabled: false`, quando ele não for necessário operacionalmente. Se for necessário mantê-lo ativo, deve ser protegido com Spring Security (autenticação/autorização no endpoint), conforme a documentação de segurança de endpoints Actuator do Spring Boot. Esse controle tem custo baixo — normalmente é configuração, não código — mas exige revisão de quem depende do endpoint para automação de rotas dinâmicas.

Não funciona como mitigação apenas restringir por 'security through obscurity' (mudar o path do Actuator) sem also restringir exposição de rede ou autenticação — scanners de exploração testam paths conhecidos do Actuator diretamente, e a restrição de exposição via `management.endpoints.web.exposure.include` sem desabilitar o endpoint gateway especificamente não é suficiente se 'gateway' ainda estiver na lista de exposição.

Como detectar

Nos logs de acesso, procurar requisições HTTP (POST/PUT/DELETE) ao path do Actuator relacionado a gateway (ex.: /actuator/gateway/routes/{id}) seguidas de chamada ao endpoint de refresh (/actuator/gateway/refresh), especialmente originadas de IPs externos não administrativos. O corpo dessas requisições, se logado, pode conter sintaxe SpEL característica (uso de `#{...}`) dentro de campos de filtro ou predicate — presença disso é sinal forte de tentativa de exploração.

Como o endpoint aceita tráfego HTTP legítimo de administração, não há um único indicador de rede infalível sem inspecionar payload; ambientes sem log de corpo de requisição no Actuator terão baixa visibilidade retroativa. Presença de processos filhos anômalos gerados pela JVM do Gateway (shells, ferramentas de rede) é o sinal mais confiável de exploração já concretizada, dado que a técnica pública documentada resulta em execução de comando via processo do sistema operacional.

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.
In spring cloud gateway versions prior to 3.1.1+ and 3.0.7+ , applications are vulnerable to a code injection attack when the Gateway Actuator endpoint is enabled, exposed and unsecured. A remote attacker could make a maliciously crafted request that could allow arbitrary remote execution on the remote host.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
PoCs públicas encontradas89
exploitdbwww.exploit-db.com/exploits/50799não verificadogithubgithub.com/lucksec/Spring-Cloud-Gateway-CVE-2022-22947223githubgithub.com/whwlsfb/cve-2022-22947-godzilla-memshell210githubgithub.com/SecNN/CVE-2022-22947_Rce_Exp77githubgithub.com/tangxiaofeng7/CVE-2022-22947-Spring-Cloud-Gateway71githubgithub.com/0730Nophone/CVE-2022-22947-60githubgithub.com/crowsec-edtech/CVE-2022-2294738githubgithub.com/0x7eTeam/CVE-2022-2294735githubgithub.com/Tas9er/SpringCloudGatewayRCE28githubgithub.com/Zh0um1/CVE-2022-2294728githubgithub.com/viemsr/spring_cloud_gateway_memshell18githubgithub.com/Enokiy/cve-2022-22947-spring-cloud-gateway18githubgithub.com/B0rn2d/Spring-Cloud-Gateway-Nacos16githubgithub.com/MoCh3n/CVE-2022-22947-Spring-Cloud-Gateway-SpelRCE14githubgithub.com/k3rwin/spring-cloud-gateway-rce12githubgithub.com/4nNns/CVE-2022-2294712githubgithub.com/twseptian/cve-2022-2294711githubgithub.com/Wrin9/CVE-2022-2294711githubgithub.com/Vulnmachines/spring-cve-2022-2294710githubgithub.com/dingxiao77/-cve-2022-22947-9githubgithub.com/SiJiDo/CVE-2022-229479githubgithub.com/hunzi0/CVE-2022-22947-Rce_POC7githubgithub.com/mrknow001/CVE-2022-229477githubgithub.com/anansec/CVE-2022-22947_EXP7githubgithub.com/YutuSec/SpEL6githubgithub.com/darkb1rd/cve-2022-229476githubgithub.com/Arrnitage/CVE-2022-22947_exp5githubgithub.com/Greetdawn/CVE-2022-229475githubgithub.com/sagaryadav8742/springcloudRCE4githubgithub.com/LY613313/CVE-2022-229473githubgithub.com/nu0l/cve-2022-229473githubgithub.com/stayfoolish777/CVE-2022-22947-POC3githubgithub.com/kkx600/Burp_VulPscan2githubgithub.com/Le1a/CVE-2022-229472githubgithub.com/dbgee/CVE-2022-229472githubgithub.com/22ke/CVE-2022-229472githubgithub.com/Vancomycin-g/CVE-2022-229472githubgithub.com/talentsec/Spring-Cloud-Gateway-CVE-2022-229471githubgithub.com/Wrong-pixel/CVE-2022-22947-exp1githubgithub.com/Jun-5heng/CVE-2022-229471githubgithub.com/Nathaniel1025/CVE-2022-229471githubgithub.com/qq87234770/CVE-2022-229471githubgithub.com/bysinks/CVE-2022-229471githubgithub.com/kmahyyg/CVE-2022-229471githubgithub.com/aesm1p/CVE-2022-22947-POC-Reproduce0githubgithub.com/fbion/CVE-2022-229470githubgithub.com/scopion/CVE-2022-22947-exp0githubgithub.com/Sumitpathania03/CVE-2022-229470githubgithub.com/superneilcn/SpringExploitGUI0githubgithub.com/cc3305/CVE-2022-229470githubgithub.com/skysliently/CVE-2022-22947-pb-ai0githubgithub.com/shoucheng3/spring-cloud__spring-cloud-gateway_CVE-2022-22947_3-0-60githubgithub.com/SanderSchepers1993/CyberSec20260githubgithub.com/ciri3/spring-cloud-gateway-cve-2022-22947-report0githubgithub.com/entr0pie/demo-cve-2022-229470githubgithub.com/nanaao/CVE-2022-22947-POC0githubgithub.com/flying0er/CVE-2022-22947-goby0githubgithub.com/Summer177/Spring-Cloud-Gateway-CVE-2022-229470githubgithub.com/BerMalBerIst/CVE-2022-229470githubgithub.com/scopion/cve-2022-229470githubgithub.com/PaoPaoLong-lab/Spring-CVE-2022-22947-0githubgithub.com/hh-hunter/cve-2022-22947-docker0vulncheckvulncheck.com/xdb/e709c7824d6fnão verificadovulncheckvulncheck.com/xdb/0e346534d99cnão verificadovulncheckvulncheck.com/xdb/ef11176b296dnão verificadovulncheckvulncheck.com/xdb/3e6c0320c020não verificadovulncheckvulncheck.com/xdb/2665970cc7d0não verificadovulncheckvulncheck.com/xdb/497a7868a7f8não verificadovulncheckvulncheck.com/xdb/9344fae60775não verificadovulncheckvulncheck.com/xdb/e911b1c2597fnão verificadovulncheckvulncheck.com/xdb/06a474d9b7ecnão verificadovulncheckvulncheck.com/xdb/e7ca8c762802não verificadovulncheckvulncheck.com/xdb/afa67d1ce366não verificadovulncheckvulncheck.com/xdb/bd2a06bbd8bbnão verificadovulncheckvulncheck.com/xdb/1c0791ff43d4não verificadovulncheckvulncheck.com/xdb/48f7a107c7f1não verificadovulncheckvulncheck.com/xdb/7bc2856e5f63não verificadocve_referencepacketstormsecurity.com/files/166219/Spring-Cloud-Gateway-3.1.0-Remote-Code-Execution.htmlnão verificadovulncheckvulncheck.com/xdb/0751146bcae7não verificadocve_referencepacketstormsecurity.com/files/168742/Spring-Cloud-Gateway-3.1.0-Remote-Code-Execution.htmlnão verificadovulncheckvulncheck.com/xdb/fd72b929a3aenão verificadovulncheckvulncheck.com/xdb/769ad48809b9não verificadovulncheckvulncheck.com/xdb/66245b597db0não verificadovulncheckvulncheck.com/xdb/32e3404666d2não verificadovulncheckvulncheck.com/xdb/ee5d2b5c3f92não verificadovulncheckvulncheck.com/xdb/a02abe0b70a0não verificadovulncheckvulncheck.com/xdb/6eeb91b260d2não verificadovulncheckvulncheck.com/xdb/d03fdfb98036não verificadovulncheckvulncheck.com/xdb/a48d3f6ecc63não verificado
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.