
NotCVE-2026-0009 — Updated!
Уязвимость обхода пути в NitroShare v0.3.4
Уязвимость Path Traversal в nitroshare
Описание
NitroShare Desktop v0.3.4 содержит уязвимость path traversal в своём LAN-сервере передачи файлов. Сервер прослушивает все сетевые интерфейсы (порт 40818) без аутентификации. При получении файлов поле name из JSON-заголовка элемента отправителя передаётся без проверки того, что разрешённый путь остаётся в пределах корневого каталога передачи, C:\UserName\Downloads\NitroShare. Злоумышленник в той же LAN-сети может отправить специально сформированное имя файла, содержащее последовательности ../ (классическая атака dot dot slash), чтобы записать файлы в любое место, доступное текущему пользователю, включая папку автозагрузки Windows для выполнения кода при следующем входе в систему (именно поэтому и был создан PoC). Взаимодействие с пользователем не требуется. Кроме того, TLS отключён по умолчанию (метод аутентификации, который предлагает приложение), что означает отсутствие необходимости аутентификации по умолчанию, и, как я предполагаю, большинство пользователей так и оставят, исходя из многолетнего опыта работы в IT и информационной безопасности.
Шаги воспроизведения
- Подключитесь к серверу передачи NitroShare на TCP-порту 40818 из LAN-сети.
- Отправьте JSON-пакет заголовка передачи:
{"name":"attacker","size":"<n>","count":"1"}. - Отправьте JSON-пакет заголовка элемента с именем файла, содержащим path traversal:
{"name":"../../AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/payload.exe","directory":false,"created":"0","last_modified":"0","last_read":"0","size":"<n>"} - Отправьте бинарный(е) пакет(ы), содержащие содержимое вредоносного файла.
- Файл записывается за пределами каталога загрузок по пути, выбранному злоумышленником.
- Если целью является папка автозагрузки, полезная нагрузка выполняется автоматически при следующем входе пользователя в систему.
Рабочий PoC прилагается (poc_path_traversal_via_lan_transfer___arbitrary_file_w.py) и был проверен на NitroShare 0.3.4 в Windows.
Рекомендации по устранению
- Очистка получаемых имён файлов — Удаляйте или отклоняйте разделители путей (
/,\) и последовательности... После разрешения с помощьюQDir::absoluteFilePath()убедитесь, что результат начинается с корневого каталога передачи, прежде чем продолжить. - Требовать пароль или включить TLS по умолчанию — Поставляйте приложение с включённым TLS и автоматической генерацией сертификатов при первом запуске, либо добавьте возможность установки пароля.
- Добавить запрос на подтверждение передачи — Запрашивайте подтверждение у пользователя перед записью полученных файлов на диск.
- Внедрить аутентификацию — Требуйте механизм сопряжения (общий секрет, QR-код или обмен сертификатами) перед принятием передач.
Хронология раскрытия
- 13 апреля 2026 г. — Связался с разработчиком по электронной почте, опубликованной в репозитории GitHub. Ответа нет.
- 19 апреля 2026 г. — Вторая попытка. Ответа нет.
- 3 мая 2026 г. — Третья попытка. Ответа нет.
- 22 июля 2026 г. — Присвоен идентификатор NotCVE-2026-0009
- 28 июля 2026 г. — Присвоен идентификатор CVE-2026-66050