CVE-2025-55854 - Vulnerabilità di Cross-Site Scripting (XSS) Memorizzata
Panoramica della Vulnerabilità
ID CVE: CVE-2025-55854
Tipo di Vulnerabilità: Cross-Site Scripting (XSS) Memorizzata
Gravità: Alta
Componente Interessato: Campo Bio del Profilo Utente
Applicazione Interessata: FreelanceHub (https://github.com/nooncarlett/FreelanceHub)
Descrizione
È stata scoperta una vulnerabilità di Cross-Site Scripting (XSS) memorizzata nella funzionalità del profilo utente dell'applicazione FreelanceHub. La vulnerabilità esiste a causa di una sanitizzazione insufficiente dell'input nel campo Bio, consentendo agli aggressori di iniettare codice JavaScript dannoso che viene eseguito quando altri utenti visualizzano la pagina del profilo interessata.
Questa vulnerabilità consente a un aggressore di:
- Eseguire JavaScript arbitrario nel contesto dei browser di altri utenti
- Rubare token di sessione e cookie
- Eseguire azioni per conto di utenti autenticati
- Reindirizzare gli utenti verso siti web dannosi
- Deturpare l'interfaccia dell'applicazione
Versioni Interessate
- FreelanceHub (tutte le versioni precedenti alla patch)
- Testato su: distribuzione localhost in esecuzione sulla porta 8080
Dettagli Tecnici
Causa Principale
L'applicazione non riesce a sanitizzare correttamente l'input utente nel campo Bio prima di memorizzarlo nel database e visualizzarlo sulla pagina del profilo. L'HTML viene renderizzato direttamente senza escape dei caratteri speciali o rimozione di tag e gestori di eventi potenzialmente pericolosi.
Vettore di Attacco
- Tipo di Attacco: XSS Memorizzata
- Vettore di Input: Campo Bio del Profilo Utente
- Contesto di Esecuzione: Qualsiasi utente che visualizza il profilo dell'aggressore
- Autenticazione Richiesta: Sì (l'aggressore necessita di un account valido)
Prova di Concetto
Prerequisiti
- Istanza in esecuzione dell'applicazione FreelanceHub
- Browser web (Chrome, Firefox, Edge, ecc.)
- Accesso per creare un account utente
Riproduzione Passo per Passo
Passo 1: Creare un Nuovo Account
- Navigare su
http://localhost:8080/auth
- Registrarsi per un nuovo account utente utilizzando credenziali valide
- Completare il processo di registrazione e accedere

Passo 2: Navigare alla Pagina del Profilo
- Dopo l'accesso riuscito, navigare su
http://localhost:8080/profile
- Individuare il campo Bio nel modulo di modifica del profilo
Passo 3: Iniettare il Payload XSS
- Nel campo Bio, inserire il seguente payload:
Passo 4: Inviare il Modulo
- Fare clic sul pulsante Salva o Aggiorna Profilo
- Attendere la conferma che il profilo sia stato aggiornato
Passo 5: Attivare l'XSS
- Visitare o ricaricare la pagina del profilo:
http://localhost:8080/profile
- La finestra di avviso JavaScript verrà eseguita automaticamente
- Risultato: Il codice JavaScript viene eseguito con successo, confermando la vulnerabilità XSS memorizzata
Comportamento Previsto
L'applicazione dovrebbe sanitizzare l'input e:
- Rimuovere tutti i tag HTML dal campo Bio
- Codificare i caratteri speciali (
<, >, ", ', ecc.)
- Implementare le intestazioni Content Security Policy (CSP)
Comportamento Effettivo
Il payload HTML/JavaScript dannoso viene memorizzato nel database ed eseguito quando la pagina del profilo viene renderizzata, senza alcuna sanitizzazione o codifica.
Valutazione dell'Impatto
Gravità: ALTA
Punteggio CVSS v3.1: 8.1 (Alta)
Stringa del Vettore: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Impatto nel Mondo Reale
- Dirottamento di Sessione: Gli aggressori possono rubare token di sessione e impersonare gli utenti
- Furto di Credenziali: Script dannosi possono creare moduli di accesso falsi per catturare le credenziali
- Esfiltrazione di Dati: I dati sensibili degli utenti possono essere inviati a server controllati dall'aggressore
- Distribuzione di Malware: Gli utenti possono essere reindirizzati verso siti web dannosi
- Attacchi di Phishing: Il dominio affidabile può essere utilizzato per ospitare contenuti di phishing convincenti
- Compromissione dell'Account: Combinata con altre vulnerabilità, questa può portare alla compromissione completa dell'account