Vulnerabilità XSS riflessa proof-of-concept per HotelDruid 3.0.7, che dimostra l'esecuzione arbitraria di JavaScript tramite il parametro ripristina_backup in crea_backup.php.
CVE-2025-25747 - Vulnerabilità XSS riflessa in HotelDruid 3.0.7
Descrizione
La vulnerabilità Cross Site Scripting in DigitalDruid HotelDruid v.3.0.7 consente a un attaccante di eseguire codice arbitrario e ottenere informazioni sensibili tramite il parametro ripristina_backup nell'endpoint crea_backup.php
Gravità e impatto
Impatto
Un attaccante potrebbe indurre un utente autenticato a visitare un URL appositamente costruito, che attiverebbe JavaScript dannoso nel suo browser. Le potenziali conseguenze includono:
Dirottamento della sessione: Un attaccante potrebbe rubare i cookie di sessione, ottenendo accesso non autorizzato all'account dell'utente.
Phishing o distribuzione di malware: L'utente potrebbe essere reindirizzato a siti web dannosi, oppure script controllati dall'attaccante potrebbero iniettare contenuti dannosi direttamente nell'interfaccia.
Abuso dei privilegi amministrativi: Se sfruttata contro un amministratore, l'attaccante potrebbe modificare le impostazioni di sistema o manipolare dati sensibili.
Risultato: Il browser reindirizza automaticamente a Facebook.
Analisi
Contesto
HotelDruid è un sistema open-source di gestione delle strutture ricettive utilizzato per gestire prenotazioni, camere e fatturazione per hotel, B&B e altre attività del settore alberghiero. È basato sul web, in genere installato su server locali e accessibile tramite browser. Data la sua interfaccia web e la natura amministrativa, una solida sicurezza è fondamentale — soprattutto per le funzioni autenticate.
Dettagli della vulnerabilità
L'endpoint crea_backup.php elabora il parametro ripristina_backup senza sanificazione o codifica, riflettendo direttamente l'input dell'utente nella pagina. Ciò consente a un attaccante di creare un URL dannoso che inietta JavaScript arbitrario nella pagina visualizzata da un utente autenticato.
Dettagli tecnici principali
Parametro interessato:ripristina_backup
Endpoint interessato:crea_backup.php
Tipo di attacco: Cross-Site Scripting riflesso (XSS)
Precondizione: Richiede una sessione autenticata valida (id_sessione)
Flusso dell'attacco
L'attaccante crea un URL dannoso con il payload iniettato in ripristina_backup.
L'attaccante invia questo URL a una vittima autenticata (ad es., tramite email di phishing, messaggio in chat).
La vittima fa clic sull'URL mentre è autenticata, attivando il JavaScript dannoso nel suo browser.
Lo script viene eseguito nel contesto della sessione della vittima, consentendo:
Furto dei cookie di sessione (se HttpOnly non è impostato)
Reindirizzamento verso siti controllati dall'attaccante
Iniezione di contenuti dannosi nell'interfaccia
Mitigazione / Correzione
Raccomandazioni per gli sviluppatori
Validazione dell'input: Validare tutti gli input forniti dall'utente lato server.
Codifica dell'output: Codificare correttamente tutto l'output prima di visualizzarlo (ad es., usare htmlspecialchars() in PHP per codificare i caratteri < e >).
Content Security Policy (CSP): Implementare una Content Security Policy rigorosa per ridurre l'impatto degli script iniettati.
Gestione delle sessioni: Assicurarsi che le sessioni non siano esposte nei parametri GET (usare cookie sicuri con flag HttpOnly e SameSite).
Cronologia e crediti
Data della scoperta: 16 gennaio 2025
Notifica al fornitore: 17 gennaio 2025
Assegnazione CVE MITRE: CVE-2025-25747, 27 febbraio 2025