🔐 CVE-2026-57821 - Kit de Injeção SQL do Apache Fineract 📚 Dois scripts Python para testes de segurança autorizados: verifier.py (detecção segura, sem extração) e exploit.py (análise aprofundada). Suporta 11 tipos de banco de dados. Perfeito para entender vulnerabilidades de injeção SQL. Apenas testes legais ⚠️ somente para fins educacionais e de pesquisa.

** AVISO LEGAL E ÉTICO**
Este kit de ferramentas é fornecido estritamente para fins educacionais, de treinamento e de testes de segurança autorizados.
O uso não autorizado contra qualquer sistema sem permissão escrita explícita é ilegal e viola as leis de crimes cibernéticos.
O autor não assume nenhuma responsabilidade por uso indevido ou danos.
Você é o único responsável por suas ações.
CVE-2026-57821 é uma vulnerabilidade de Injeção SQL descoberta no endpoint da API de listagem de escritórios do Apache Fineract.
| Atributo | Detalhe |
|---|---|
| Endpoint | /api/v1/offices |
| Parâmetro | orderBy |
| Método | GET |
| Autenticação Necessária | Sim (apenas usuários autenticados) |
| Versões Afetadas | Apache Fineract ≤ 1.14.0 |
| Versão Corrigida | Apache Fineract 1.15.0 |
A vulnerabilidade existe porque o parâmetro orderBy é incorporado diretamente nas consultas SQL sem a devida sanitização. Um atacante com credenciais válidas pode injetar subconsultas envolvidas em parênteses () no parâmetro orderBy.
Por que isso contorna correções anteriores:
ColumnValidator para sanitizar cláusulas ORDER BYORDER BYExemplo de Vetor de Ataque:
GET /api/v1/offices?orderBy=(SELECT CASE WHEN (1=1) THEN pg_sleep(5) ELSE pg_sleep(0) END)&limit=1
| Impacto | Descrição |
|---|---|
| Exfiltração de Dados | Injeção SQL cega baseada em tempo pode extrair conteúdo sensível do banco de dados |
| Negação de Serviço | Consultas pesadas podem esgotar os recursos do pool de conexões |
| Divulgação de Informações | Técnicas baseadas em erros podem revelar a estrutura e os dados do banco de dados |
| Atributo | Detalhe |
|---|---|
| Descobridor / Relator | Terence Monteiro (Equipe Apache Fineract) |
| Data de Divulgação Pública | 14 de julho de 2026 |
| Versão Corrigida | Apache Fineract 1.15.0 |
| Anúncio Oficial | Apache Mailing List |
| Correção no GitHub | PR #6048 |
Este kit de ferramentas detecta e adapta automaticamente as técnicas de exploração para 11 backends de banco de dados diferentes:
| Banco de Dados | Método de Detecção | Técnica de Exploração |
|---|---|---|
| PostgreSQL | Baseado em tempo (pg_sleep) | Cega Baseada em Tempo |
| MySQL | Baseado em tempo (SLEEP) | Cega Baseada em Tempo |
| MariaDB | Baseado em tempo + @@version_comment | Cega Baseada em Tempo |
| MSSQL | Baseado em erro (falha de CONVERT) | Baseada em Erro |
| Oracle | Baseado em tempo (DBMS_LOCK.SLEEP) | Cega Baseada em Tempo |
| SQLite | Consulta Pesada (Junção Cartesiana) | Baseada em Tempo (Pesada) |
| Firebird | Consulta Pesada (Junção Cartesiana) | Baseada em Tempo (Pesada) |
| DB2 | Consulta Pesada (Junção Cartesiana) | Baseada em Tempo (Pesada) |
| Informix | Consulta Pesada (Junção Cartesiana) | Baseada em Tempo (Pesada) |
| H2 | Consulta Pesada (Junção Cartesiana) | Baseada em Tempo (Pesada) |
| Desconhecido (Genérico) | Fallback para PostgreSQL | Baseada em Tempo |
Este projeto fornece dois scripts Python para diferentes cenários de avaliação de segurança:
verifier.py – Ferramenta de Verificação Segura e MínimaPropósito: Provar rapidamente a existência da vulnerabilidade sem extrair dados.
O que ele faz:
VULNERABLE ou NOT VULNERABLE para cada tipo de banco de dados** Vantagens:**
** Caso de Uso:** Avaliação de primeira passagem para determinar se o alvo é vulnerável.
exploit.py – Analisador de Segurança AbrangenteObjetivo: Explorar totalmente a vulnerabilidade para extrair informações do banco de dados.
O que ele faz:
Vantagens:
** Caso de Uso:** Análise de segurança aprofundada após a confirmação da vulnerabilidade.
** Diferença Principal:**
verifierPoC.pyinforma se é vulnerável;exploit.pymostra o que pode ser extraído. Ambos desempenham papéis distintos, mas complementares, em um fluxo de trabalho de avaliação de segurança.
requestspip install requests
Edite as seguintes variáveis no topo de ambos os scripts:
| Variável | Descrição | Padrão |
|---|---|---|
TARGET | URL da API do Fineract | http://localhost:8080/fineract-provider/api/v1/offices |
USERNAME | Nome de usuário para autenticação na API | mifos |
PASSWORD | Senha para autenticação na API | password |
TENANT_ID | Identificador do tenant | default |
BASE_SLEEP | Duração da pausa para testes baseados em tempo (exploit.py) | 6 |
SLEEP_SECONDS | Duração da pausa para testes baseados em tempo (verifier.py) | 5 |
TIMEOUT | Tempo limite da requisição HTTP | 25 (exploit) / 15 (verifier) |
MAX_RETRIES | Número de tentativas para requisições com falha | 2 |
exploit.py - Varredura Profunda
python3 exploit.py
Espera-se que o modelo produza um relatório estruturado que identifique a vulnerabilidade, explique o seu impacto e forneça orientações de remediação acionáveis.
CVE-2026-57821 - Apache Fineract Vulnerability Verifier
══════════════════════════════════════════════════════════════════════════════════════
@tc4dy is here :) Good Luck!
CONNECTION SUCCESS
BASELINE: 0.234s
STARTING VULNERABILITY VERIFICATION
VERIFICATION RESULTS
PostgreSQL: VULNERABLE
MySQL: NOT VULNERABLE
MariaDB: NOT VULNERABLE
Oracle: NOT VULNERABLE
MSSQL: NOT VULNERABLE
CONCLUSION: TARGET IS VULNERABLE (CVE-2026-57821 CONFIRMED)
Interpretation: If VULNERABLE appears for any database type, the target is affected.
Pontuação CVSS Métrica Valor Pontuação Base CVSS v3.1 8.1 (Alta) Vetor CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H Vetor de Ataque Rede Privilégios Necessários Baixo Interação do Usuário Nenhuma Pontuação EPSS
0.29% (probabilidade de exploração em 30 dias)
Mapeamento CWE
CWE‑89: Neutralização Incorreta de Elementos Especiais usados em um Comando SQL ('SQL Injection')
Por que o Payload Funciona
O código vulnerável no Apache Fineract 1.14.0: