
# Pfad-Traversal-Schwachstelle in NitroShare v0.3.4
NitroShare Desktop v0.3.4 enthält eine Path-Traversal-Schwachstelle in seinem LAN-Dateiübertragungsserver. Der Server lauscht auf allen Netzwerkschnittstellen (Port 40818) ohne Authentifizierung. Beim Empfang von Dateien wird das Feld name aus dem JSON-Item-Header des Absenders übergeben, ohne zu überprüfen, ob der aufgelöste Pfad innerhalb des Übertragungsstammverzeichnisses C:\UserName\Downloads\NitroShare bleibt. Ein Angreifer im selben LAN kann eine manipulierte Dateinamen-Zeichenkette mit ../-Sequenzen (klassischer Dot-Dot-Slash-Angriff) senden, um Dateien überall dort zu schreiben, wo der aktuelle Benutzer Zugriff hat, einschließlich des Windows-Autostart-Ordners für die Codeausführung beim nächsten Login (daher der erstellte PoC). Es ist keine Benutzerinteraktion erforderlich. Zusätzlich ist TLS standardmäßig deaktiviert (die Authentifizierungsmethode, die die Anwendung anbietet), was bedeutet, dass standardmäßig keine Authentifizierung erforderlich ist – was ich aufgrund jahrelanger Arbeit in IT und Informationssicherheit annehme, dass die meisten Benutzer so vorgehen.
{"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>"}
Ein funktionierender PoC wird bereitgestellt (poc_path_traversal_via_lan_transfer___arbitrary_file_w.py) und wurde gegen NitroShare 0.3.4 unter Windows verifiziert.
/, \) und ..-Sequenzen entfernen oder ablehnen. Nach der Auflösung mit QDir::absoluteFilePath() überprüfen, ob das Ergebnis mit dem Übertragungsstammverzeichnis beginnt, bevor fortgefahren wird.