
CVE-2025-60374: Cross-Site Scripting persistente (XSS) nel chatbot di Perfex CRM
CVE-2025-60374: Cross-Site Scripting (XSS) Persistente nel Chatbot di Perfex CRM
⚠️ Avviso di Sicurezza
Una vulnerabilità critica di Cross-Site Scripting Persistente nella funzionalità chatbot di Perfex CRM
Una vulnerabilità di cross-site scripting (XSS) persistente nel componente chatbot di Perfex CRM, precedente alla versione 3.3.1, consente agli attaccanti di iniettare codice JavaScript arbitrario tramite i messaggi della chat. Il payload malevolo viene salvato nel database dell'applicazione ed eseguito nei browser degli utenti che visualizzano la conversazione, consentendo il furto dei token di sessione, azioni non autorizzate per conto delle vittime e altri attacchi lato client.
| Attributo | Valore |
|---|---|
| ID CVE | CVE-2025-60374 |
| Tipo | Cross-Site Scripting (XSS) Persistente |
| CWE | CWE-79 |
| Vettore di Attacco | Rete/Remoto |
| Autenticazione | Richiesta (Privilegi Bassi) |
| Interazione dell'Utente | Nessuna o Minima |
| Ricercatore | Ajansha Shankar |
Il parametro dei messaggi del chatbot in Perfex CRM non applica una corretta sanificazione dell'input e codifica dell'output. Quando gli utenti inviano messaggi tramite l'interfaccia del chatbot, i payload HTML/JavaScript malevoli vengono salvati nel database senza un filtraggio adeguato e successivamente renderizzati senza un corretto escaping, portando all'esecuzione di codice nei browser degli altri utenti.
HttpOnlydocument.cookie| Fattore | Impatto | Spiegazione |
|---|---|---|
| Riservatezza | 🔴 ALTO | I token di sessione e i dati sensibili possono essere rubati |
| Integrità | 🔴 ALTO | Possono essere eseguite azioni non autorizzate come la vittima |
| Disponibilità | 🟡 BASSO | Impatto limitato sulla disponibilità del sistema |
<button onclick=alert('Click executed!')>Click here</button>
<meter value=2 min=0 max=10 onmouseover=alert('XSS triggered!')>
2 out of 10
</meter>
Esempio di Furto dei Cookie:
Questo payload invierebbe il cookie di sessione della vittima a un server controllato dall'attaccante, consentendo la completa compromissione dell'account.
// Input Sanitization Example
$message = htmlspecialchars($input_message, ENT_QUOTES, 'UTF-8');
// Output Encoding Example
echo htmlspecialchars($stored_message, ENT_QUOTES, 'UTF-8');
Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none';
setcookie('session', $value, [
'httponly' => true,
'secure' => true,
'samesite' => 'Strict'
]);
// Use DOMPurify, HTML Purifier, or similar
$clean_html = $purifier->purify($dirty_html);
Scoperta da: Ajansha Shankar , Ahamed Yaseen