
Vulnerabilità di Path Traversal in NitroShare v0.3.4
NitroShare Desktop v0.3.4 contiene una vulnerabilità di path traversal nel suo server di trasferimento file LAN. Il server resta in ascolto su tutte le interfacce di rete (porta 40818) senza autenticazione. Quando riceve file, il campo name dell'intestazione dell'elemento JSON del mittente viene passato senza verificare che il percorso risolto rimanga all'interno della directory root di trasferimento, C:\UserName\Downloads\NitroShare. Un attaccante sulla stessa LAN può inviare un nome di file appositamente modificato contenente sequenze ../ (classico attacco dot dot slash) per scrivere file ovunque l'utente corrente abbia accesso, inclusa la cartella Startup di Windows per l'esecuzione di codice al prossimo accesso (da qui il POC creato). Nessuna interazione dell'utente è richiesta. Inoltre, TLS è disabilitato per impostazione predefinita (il metodo di autenticazione offerto dall'applicazione), il che significa che per impostazione predefinita non è richiesta alcuna autenticazione, cosa che presumo la maggior parte degli utenti farà, sulla base di anni di lavoro nell'IT e nella sicurezza delle informazioni.
{"name":"attacker","size":"<n>","count":"1"}.{"name":"../../AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/payload.exe","directory":false,"created":"0","last_modified":"0","last_read":"0","size":"<n>"}
Viene fornito un PoC funzionante (poc_path_traversal_via_lan_transfer___arbitrary_file_w.py) ed è stato verificato contro NitroShare 0.3.4 su Windows.
/, \) e le sequenze ... Dopo la risoluzione con QDir::absoluteFilePath(), verificare che il risultato inizi con la directory root di trasferimento prima di procedere.