
Advisory che descrive una vulnerabilità XSS riflessa in PuneethReddyHC Event Management System v1.0, inclusa l'analisi dell'impatto, i passaggi per la riproduzione e le raccomandazioni di mitigazione.
Titolo: Cross-Site Scripting (XSS) riflesso tramite il parametro event_id in register.php
Vendor / Repository: PuneethReddyHC / event-management
Versione interessata: 1.0 (branch/tag master al momento del test)
Segnalatore: Hafiz Pradana Gemilang
Stato della divulgazione: Vendor informato privatamente — PoC dell'exploit trattenuto per la sicurezza degli utenti.
Stato e tempistiche verranno aggiornati dopo il coordinamento o il rilascio della patch.
È stata identificata una vulnerabilità di Cross-Site Scripting (XSS) riflesso in register.php, dove il parametro GET event_id non viene adeguatamente sanificato prima di essere riflesso nell'output della pagina.
Un attaccante remoto può creare un URL malevolo che esegue JavaScript arbitrario nel browser della vittima una volta che questa visita il link o vi viene reindirizzata.
⚠️ Questo advisory omette intenzionalmente un payload exploit attivo.
La prova di concetto completa è stata fornita privatamente al vendor per lo sviluppo della patch.
/register.php?event_id=<valore>
Esempio (test locale):
http://<host>/event-management-master/register.php?event_id=1
Lo sfruttamento riuscito consente l'esecuzione di JavaScript arbitrario nel contesto del dominio interessato.
Conseguenze potenziali:
HttpOnly)CVSS v3.1 stimato: 6.1 (Medio) — AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N
event_id.Il payload completo e la prova di concetto sono stati condivisi privatamente con il vendor.
Se sei il manutentore e necessiti dell'accesso, contatta il segnalatore (vedi sotto).
Applicare validazione lato server e codifica dell'output per prevenire XSS riflesso.
Validazione dell'input
Se event_id è numerico, imporre la validazione numerica:
$event_id = filter_input(INPUT_GET, 'event_id', FILTER_VALIDATE_INT);
if ($event_id === false) {
// gestisci input non valido
}
Codifica dell'output
Escapare i dati forniti dall'utente prima di stamparli in HTML:
echo htmlspecialchars($event_id, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
Utilizzare framework o template sicuri
Preferire framework che eseguono automaticamente l'escaping sensibile al contesto.
Cookie sicuri
Impostare i flag HttpOnly, Secure e SameSite sui cookie di sessione.
Content Security Policy (CSP)
Applicare una CSP rigorosa ed evitare l'uso di unsafe-inline.
Revisione del codice e audit
Controllare tutti gli altri parametri riflessi in tutta l'applicazione.
// Valida l'input numerico
$event_id = filter_input(INPUT_GET, 'event_id', FILTER_VALIDATE_INT);
if ($event_id === false || $event_id === null) {
$event_id = 0; // oppure mostra un errore / reindirizza
}
// Output sicuro
?>
<span id="event-id"><?= htmlspecialchars($event_id, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?></span>
<?php
htmlspecialchars(): https://www.php.net/manual/en/function.htmlspecialchars.phpSegnalato da: Hafiz Pradana Gemilang
Questo advisory omette il codice exploit dettagliato per proteggere gli utenti del software interessato.
I dettagli tecnici completi sono disponibili al vendor o ai coordinatori autorizzati su richiesta secondo i termini della divulgazione responsabile.