← volver
CVE-2022-22947criticalbajo ataqueCWE-94

CVE-2022-22947

100Vexday Risk Score

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

ssvc Actcvss 10epss 98%
de la publicación al arma0 días
Publicada en NVD3 mar
1ª PoC25 ene
metasploit26 ene
CISA KEV+74d
probabilidad de explotación
98%top 1% de las CVE
explotación observada
CISA + VulnCheck
89 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2022-06-06

Apply updates per vendor instructions.

Resumen

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.

Detalle 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.

Cómo se explota

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.

Versiones

Afectadas
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.
Corregidas en
3.1.1 (linha 3.1.x) e 3.0.7 (linha 3.0.x), disponíveis como OSS conforme advisory oficial.

Cómo protegerse

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.

Cómo 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.

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 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
Productos afectados
n/a · Spring Cloud Gateway
PoCs públicas encontradas89
exploitdbwww.exploit-db.com/exploits/50799no verificadogithubgithub.com/lucksec/Spring-Cloud-Gateway-CVE-2022-22947223githubgithub.com/whwlsfb/cve-2022-22947-godzilla-memshell211githubgithub.com/SecNN/CVE-2022-22947_Rce_Exp77githubgithub.com/tangxiaofeng7/CVE-2022-22947-Spring-Cloud-Gateway71githubgithub.com/0730Nophone/CVE-2022-22947-61githubgithub.com/crowsec-edtech/CVE-2022-2294738githubgithub.com/0x7eTeam/CVE-2022-2294736githubgithub.com/Zh0um1/CVE-2022-2294728githubgithub.com/Tas9er/SpringCloudGatewayRCE28githubgithub.com/Enokiy/cve-2022-22947-spring-cloud-gateway18githubgithub.com/viemsr/spring_cloud_gateway_memshell18githubgithub.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/Wrin9/CVE-2022-2294711githubgithub.com/twseptian/cve-2022-2294711githubgithub.com/Vulnmachines/spring-cve-2022-2294710githubgithub.com/dingxiao77/-cve-2022-22947-9githubgithub.com/SiJiDo/CVE-2022-229479githubgithub.com/mrknow001/CVE-2022-229477githubgithub.com/hunzi0/CVE-2022-22947-Rce_POC7githubgithub.com/anansec/CVE-2022-22947_EXP7githubgithub.com/YutuSec/SpEL6githubgithub.com/darkb1rd/cve-2022-229476githubgithub.com/Greetdawn/CVE-2022-229475githubgithub.com/Arrnitage/CVE-2022-22947_exp5githubgithub.com/sagaryadav8742/springcloudRCE4githubgithub.com/nu0l/cve-2022-229473githubgithub.com/LY613313/CVE-2022-229473githubgithub.com/stayfoolish777/CVE-2022-22947-POC3githubgithub.com/kkx600/Burp_VulPscan2githubgithub.com/dbgee/CVE-2022-229472githubgithub.com/22ke/CVE-2022-229472githubgithub.com/Vancomycin-g/CVE-2022-229472githubgithub.com/Le1a/CVE-2022-229472githubgithub.com/Jun-5heng/CVE-2022-229471githubgithub.com/talentsec/Spring-Cloud-Gateway-CVE-2022-229471githubgithub.com/Wrong-pixel/CVE-2022-22947-exp1githubgithub.com/Nathaniel1025/CVE-2022-229471githubgithub.com/bysinks/CVE-2022-229471githubgithub.com/qq87234770/CVE-2022-229471githubgithub.com/kmahyyg/CVE-2022-229471githubgithub.com/BerMalBerIst/CVE-2022-229470githubgithub.com/Summer177/Spring-Cloud-Gateway-CVE-2022-229470githubgithub.com/scopion/cve-2022-229470githubgithub.com/PaoPaoLong-lab/Spring-CVE-2022-22947-0githubgithub.com/scopion/CVE-2022-22947-exp0githubgithub.com/hh-hunter/cve-2022-22947-docker0githubgithub.com/fbion/CVE-2022-229470githubgithub.com/aesm1p/CVE-2022-22947-POC-Reproduce0githubgithub.com/nanaao/CVE-2022-22947-POC0githubgithub.com/flying0er/CVE-2022-22947-goby0githubgithub.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-229470vulncheckvulncheck.com/xdb/1c0791ff43d4no verificadocve_referencepacketstormsecurity.com/files/166219/Spring-Cloud-Gateway-3.1.0-Remote-Code-Execution.htmlno verificadovulncheckvulncheck.com/xdb/769ad48809b9no verificadovulncheckvulncheck.com/xdb/fd72b929a3aeno verificadovulncheckvulncheck.com/xdb/0751146bcae7no verificadovulncheckvulncheck.com/xdb/7bc2856e5f63no verificadovulncheckvulncheck.com/xdb/66245b597db0no verificadovulncheckvulncheck.com/xdb/32e3404666d2no verificadovulncheckvulncheck.com/xdb/ee5d2b5c3f92no verificadovulncheckvulncheck.com/xdb/a02abe0b70a0no verificadovulncheckvulncheck.com/xdb/6eeb91b260d2no verificadovulncheckvulncheck.com/xdb/d03fdfb98036no verificadovulncheckvulncheck.com/xdb/a48d3f6ecc63no verificadovulncheckvulncheck.com/xdb/e709c7824d6fno verificadovulncheckvulncheck.com/xdb/0e346534d99cno verificadovulncheckvulncheck.com/xdb/ef11176b296dno verificadovulncheckvulncheck.com/xdb/3e6c0320c020no verificadovulncheckvulncheck.com/xdb/2665970cc7d0no verificadovulncheckvulncheck.com/xdb/497a7868a7f8no verificadovulncheckvulncheck.com/xdb/48f7a107c7f1no verificadovulncheckvulncheck.com/xdb/9344fae60775no verificadovulncheckvulncheck.com/xdb/e911b1c2597fno verificadovulncheckvulncheck.com/xdb/06a474d9b7ecno verificadovulncheckvulncheck.com/xdb/e7ca8c762802no verificadovulncheckvulncheck.com/xdb/afa67d1ce366no verificadovulncheckvulncheck.com/xdb/bd2a06bbd8bbno verificadocve_referencepacketstormsecurity.com/files/168742/Spring-Cloud-Gateway-3.1.0-Remote-Code-Execution.htmlno verificado
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.