В популярном инструменте для обмена файлами ZendTo обнаружена критическая уязвимость, позволяющая авторизованным злоумышленникам получать несанкционированный доступ к конфиденциальным файлам других пользователей и даже файлам самой системы. Проблема, получившая идентификатор CVE-2025-34508, затрагивает версии ZendTo 6.15-7 и более ранние. Разработчики выпустили исправление в версии 6.15-8, и администраторам настоятельно рекомендуется немедленно обновить систему для предотвращения утечки данных.
Детали уязвимости
ZendTo представляет собой веб-приложение, предназначенное для безопасной передачи больших файлов. Пользователи могут загружать файлы в так называемые «зонты получения», чтобы получатели могли их скачать по специальной ссылке. Однако механизм обработки загрузок содержал фундаментальную ошибку безопасности типа path traversal (обход пути), которая нарушала базовую изоляцию данных между пользователями.
Суть уязвимости заключается в некорректной обработке двух параметров, используемых при загрузке файлов: "chunkName" и "tmp_name". В нормальных условиях параметр "chunkName" генерируется клиентскими скриптами и очищается от потенциально опасных символов, допуская только буквы и цифры. Однако если в этом параметре отсутствуют буквенно-цифровые символы, логика приложения переключается на использование базового каталога для загрузок.
Затем приложение объединяет путь к каталогу загрузок с параметром "tmp_name" без должной проверки и санации. Это позволяет злоумышленнику, действующему под видом обычного авторизованного пользователя, манипулировать путем. Специально сформировав значение "tmp_name", например, как "/../../log/zendto/zendto.log", атакующий может заставить систему переместить произвольный файл с сервера в свою личную папку для загрузок. После этого содержимое этого файла становится доступным для скачивания при формировании пакета для получателя.
В рамках доказательства концепции исследователь безопасности продемонстрировал, что, установив значение "chunkName" как ".", а "tmp_name" как "/../../log/zendto/zendto.log", можно добиться перемещения файла журнала самого приложения ZendTo. Этот файл журнала содержит внутренние идентификаторы, которые, в свою очередь, предоставляют доступ ко всем когда-либо созданным «зонтам» и файлам в системе. Получив эти идентификаторы, злоумышленник может систематически скачивать все файлы, загруженные другими пользователями, что приводит к массовой утечке конфиденциальной информации.
Риски, связанные с данной уязвимостью, выходят далеко за рамки кражи данных. Злоумышленник потенциально может получить доступ к файлам конфигурации базы данных или ключевым исполняемым файлам приложения. Их модификация или удаление способны полностью вывести сервис из строя, вызвав состояние отказа в обслуживании (Denial-of-Service, DoS). В стандартных конфигурациях под угрозой оказывается любой файл, к которому имеет доступ пользователь веб-сервера, включая загруженные файлы, журналы и критически важные данные конфигурации.
Данный случай наглядно демонстрирует, что даже уязвимости, для эксплуатации которых требуется наличие учетной записи, могут представлять серьезную угрозу, если слабым местом оказывается проверка путей к файлам. Это подчеркивает важность реализации строгого контроля доступа на всех уровнях приложения.
Разработчики ZendTo оперативно отреагировали на сообщение об уязвимости и выпустили патч в версии 6.15-8. Администраторам, использующим уязвимые версии, следует незамедлительно провести обновление. Для тех, кто не может выполнить обновление немедленно, рекомендуется временная мера по смягчению последствий: необходимо ограничить права доступа пользователя веб-сервера в файловой системе, запретив чтение и перемещение файлов за пределы предназначенного для работы каталога.
Также целесообразно усилить мониторинг журналов сервера на предмет подозрительной активности, связанной с созданием и скачиванием «зонтов». Владельцам приложений следует придерживаться стратегии «глубокой эшелонированной обороны» (defense-in-depth). Ключевыми практиками являются обязательная проверка и санация всех вводимых пользователем данных как на стороне клиента, так и на стороне сервера. Рекомендуется использовать безопасные фреймворки, которые применяют строгую нормализацию путей, а также регулярно проводить аудит и тестирование логики загрузки и выгрузки файлов на наличие уязвимостей обхода пути и смежных проблем. Своевременное применение исправлений остается наиболее эффективным способом защиты от известных угроз.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2025-34508
- https://horizon3.ai/attack-research/attack-blogs/cve-2025-34508-another-file-sharing-application-another-path-traversal/