← back
CVE-2022-29464criticalunder attackransomwareCWE-22

CVE-2022-29464

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 9.8epss 100%
from disclosure to weapon2 days
Published on NVDApr 18
1st PoC+2d
metasploitApr 1
CISA KEV+7d
exploitation probability
100%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
49 public exploit(s)
Action required by CISAfederal deadline: 2022-05-16

Apply updates per vendor instructions.

Summary

Falha crítica de upload de arquivo irrestrito em múltiplos produtos WSO2 (API Manager, Identity Server, Enterprise Integrator, Open Banking), descoberta por Orange Tsai, que permite RCE não autenticado. O endpoint /fileupload fica fora do fluxo de autenticação por decisão explícita de código, e um Content-Disposition com sequência de directory traversal permite gravar um arquivo (ex: JSP) dentro do webroot da aplicação, que é então executado via HTTP. Está no catálogo KEV da CISA com exploração ativa confirmada, tem exploit público e módulo Metasploit — CVSS 9.8 aqui reflete corretamente o risco, sem pré-condições que reduzam o impacto.

Technical detail

O vetor é o servlet FileUploadServlet, mapeado na rota /fileupload. No identity.xml, essa rota é declarada com secured="false" para todos os métodos HTTP. Além disso, o método handleSecurity() do Carbon delega a decisão de bloquear/permitir acesso a CarbonUILoginUtil.handleLoginPageRequest(), que verifica se a URI requisitada termina em /fileupload ou contém /fileupload/ (e não contém ";") — nesse caso retorna RETURN_TRUE e pula qualquer checagem de login, logando apenas em nível debug "Skipping security checks for". Ou seja, a rota é acessível sem sessão nem credenciais por design de duas camadas independentes de configuração.

How it’s exploited

No init() do servlet, FileUploadExecutorManager carrega, a partir do carbon.xml, um mapeamento de 'Actions' para classes executoras de upload. A configuração padrão mapeia as ações 'keystore', 'certificate' e o wildcard '*' para AnyFileUploadExecutor, que não restringe tipo nem conteúdo do arquivo enviado — aceita qualquer extensão, incluindo JSP. O nome/caminho de destino do arquivo é derivado do cabeçalho Content-Disposition da requisição multipart; sem sanitização de path, um atacante insere sequências '../../../../' nesse campo para escapar do diretório de destino padrão e alcançar um diretório servido publicamente, como repository/deployment/server/webapps. O resultado é a gravação de um arquivo JSP diretamente sob o webroot, executável em seguida com uma simples requisição GET — RCE completo com privilégios do processo do servidor.

Versions

Affected
WSO2 API Manager 2.2.0, 2.5.0, 2.6.0, 3.0.0, 3.1.0, 3.2.0, 4.0.0; WSO2 Identity Server 5.2.0 a 5.11.0 (inclui 5.3.0–5.9.0 e 5.10.0); WSO2 Identity Server Analytics 5.4.0, 5.4.1, 5.5.0, 5.6.0; WSO2 Identity Server as Key Manager 5.3.0, 5.5.0, 5.6.0, 5.7.0, 5.9.0, 5.10.0; WSO2 Enterprise Integrator 6.2.0 a 6.6.0; WSO2 Open Banking AM 1.3.0, 1.4.0, 1.5.0, 2.0.0; WSO2 Open Banking KM 1.3.0, 1.4.0, 1.5.0; WSO2 Open Banking IAM 2.0.0. A descrição oficial da CVE cita faixas ligeiramente diferentes (ex. Key Manager '5.3.0 até 5.11.0'); a lista acima é a publicada no advisório oficial WSO2-2021-1738 e deve prevalecer em caso de divergência.
Fixed in
Não há números de versão de release corrigidos; o fornecedor distribuiu o fix como patch via WSO2 Updates (WUM), identificado por 'update level' específico por versão (tabela completa no advisory WSO2-2021-1738, ex.: API Manager 2.2.0 → nível 43, 4.0.0 → nível 64; Identity Server 5.11.0 → nível 103; Enterprise Integrator 6.6.0 → nível 79). Para instâncias sem assinatura, os fixes públicos estão em wso2/carbon-kernel PR#3152 e wso2/carbon-identity-framework PR#3864.

How to protect

Não é RCE que exija autenticação, configuração não padrão ou interação do usuário: qualquer instância exposta na rede com a interface de management/API acessível é vulnerável por padrão. Clientes com assinatura WSO2 Updates (WUM) devem aplicar o patch até o update level indicado pelo fornecedor para cada versão (ex.: API Manager 4.0.0 → update level 64; Identity Server 5.11.0 → update level 103; Enterprise Integrator 6.6.0 → update level 79 — a lista completa por versão está no advisory WSO2-2021-1738). Não existe um número de versão novo publicado para essas linhas; a correção é um patch/update level, não um release numerado — trate isso como não-mitigado se a instância não tiver sido atualizada via WUM ou patch manual.

Para usuários de código aberto sem assinatura, ou versões fora do suporte, o fornecedor indica aplicar os fixes públicos em carbon-kernel (PR#3152) e carbon-identity-framework (PR#3864), ou, como paliativo, adicionar regras de controle de acesso ao deployment.toml restringindo /fileupload por permissão — as regras variam por família de produto (grupo API Manager 3.x/4.0.0 vs. grupo Identity Server/IS-as-KM), e devem seguir exatamente o bloco publicado no advisory para a versão em uso, não uma regra genérica. Esse paliativo tem custo operacional baixo (só requer restart do servidor) mas não é substituto do patch: mitiga o vetor conhecido, não corrige a causa raiz na lógica de handleLoginPageRequest().

How to detect

Procure em logs de acesso do servidor por requisições (tipicamente POST multipart) para caminhos contendo '/fileupload', especialmente com cabeçalho Content-Disposition trazendo sequências de traversal ('../../../') apontando para repository/deployment/server/webapps ou outro diretório servido. Verifique também arquivos .jsp (ou outra extensão executável) recém-criados nos diretórios de webapps que não correspondam a artefatos de deploy legítimos, e mensagens de log em nível debug do Carbon do tipo 'Skipping security checks for' referenciando URIs de fileupload — isso indica que a rota foi acessada sem autenticação. Não há assinatura única confiável além dessas, já que o payload em si (o conteúdo do arquivo enviado) pode variar livremente.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
Certain WSO2 products allow unrestricted file upload with resultant remote code execution. The attacker must use a /fileupload endpoint with a Content-Disposition directory traversal sequence to reach a directory under the web root, such as a ../../../../repository/deployment/server/webapps directory. This affects WSO2 API Manager 2.2.0 up to 4.0.0, WSO2 Identity Server 5.2.0 up to 5.11.0, WSO2 Identity Server Analytics 5.4.0, 5.4.1, 5.5.0 and 5.6.0, WSO2 Identity Server as Key Manager 5.3.0 up to 5.11.0, WSO2 Enterprise Integrator 6.2.0 up to 6.6.0, WSO2 Open Banking AM 1.4.0 up to 2.0.0 and WSO2 Open Banking KM 1.4.0, up to 2.0.0.
CVSS:3.1/AC:L/AV:N/A:H/C:H/I:H/PR:N/S:U/UI:N
Affected products
n/a · n/a
public PoCs found49
githubgithub.com/hakivvi/CVE-2022-29464377githubgithub.com/0xdsm/WSOB28githubgithub.com/SystemVll/CVE-2022-2946411githubgithub.com/Ap0dexMe0/CVE-2022-294649githubgithub.com/gbrsh/CVE-2022-294647githubgithub.com/Lidong-io/cve-2022-294645githubgithub.com/hev0x/CVE-2022-294645githubgithub.com/jimidk/Better-CVE-2022-294645githubgithub.com/Chocapikk/CVE-2022-294645githubgithub.com/r4x0r1337/-CVE-2022-294644githubgithub.com/gpiechnik2/nmap-CVE-2022-294643githubgithub.com/hupe1980/CVE-2022-294643githubgithub.com/superzerosec/CVE-2022-294642githubgithub.com/mr-r3bot/WSO2-CVE-2022-294642githubgithub.com/tufanturhan/wso2-rce-cve-2022-294642githubgithub.com/hxlxmj/Mass-exploit-CVE-2022-294641githubgithub.com/0xAgun/CVE-2022-294641githubgithub.com/axin2019/CVE-2022-294641githubgithub.com/LinJacck/CVE-2022-294641githubgithub.com/Pasch0/WSO2RCE1githubgithub.com/amit-pathak009/CVE-2022-29464-mass1githubgithub.com/devengpk/CVE-2022-294641githubgithub.com/Pushkarup/CVE-2022-294641githubgithub.com/h3x0v3rl0rd/CVE-2022-294640githubgithub.com/SynixCyberCrimeMy/CVE-2022-294640githubgithub.com/cc3305/CVE-2022-294640githubgithub.com/c1ph3rbyt3/CVE-2022-294640githubgithub.com/amit-pathak009/CVE-2022-294640githubgithub.com/lowkey0808/cve-2022-294640vulncheckvulncheck.com/xdb/eda98189c7b4unverifiedvulncheckvulncheck.com/xdb/692f8dbe0563unverifiedvulncheckvulncheck.com/xdb/f5b17b3bfaceunverifiedvulncheckvulncheck.com/xdb/fb07ec0c6437unverifiedvulncheckvulncheck.com/xdb/11fb9f164ff9unverifiedvulncheckvulncheck.com/xdb/00ad5fff1b1dunverifiedvulncheckvulncheck.com/xdb/0a4c343b0014unverifiedvulncheckvulncheck.com/xdb/5c2ba6bd6d73unverifiedvulncheckvulncheck.com/xdb/51ec326380b8unverifiedvulncheckvulncheck.com/xdb/86a670679b59unverifiedvulncheckvulncheck.com/xdb/91f9d53e4538unverifiedvulncheckvulncheck.com/xdb/82f284db0232unverifiedvulncheckvulncheck.com/xdb/f381bd45a664unverifiedvulncheckvulncheck.com/xdb/22701ee3665funverifiedvulncheckvulncheck.com/xdb/b3297f4dd55cunverifiedvulncheckvulncheck.com/xdb/057c3b65744eunverifiedcve_referencepacketstormsecurity.com/files/166921/WSO-Arbitrary-File-Upload-Remote-Code-Execution.htmlunverifiedvulncheckvulncheck.com/xdb/d98d3fe174f9unverifiedvulncheckvulncheck.com/xdb/c0f15d01be06unverifiedvulncheckvulncheck.com/xdb/7407640180cbunverified
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.