Обнаружена критическая уязвимость в популярной библиотеке DotNetZip для .NET

vulnerability

В Банке данных угроз безопасности информации (BDU) зарегистрирована новая критическая уязвимость под идентификатором BDU:2026-00104. Проблема затрагивает широко используемую библиотеку с открытым исходным кодом DotNetZip, которая предназначена для работы с ZIP-архивами в среде .NET. Согласно данным, уязвимость связана с неверным ограничением пути (path traversal), что позволяет удалённому злоумышленнику выполнить произвольный код на целевой системе. Эксперты присвоили проблеме максимально высокий уровень опасности.

Детали уязвимости

Техническая суть уязвимости, получившей идентификатор CVE-2024-48510, заключается в ошибке типа CWE-22, известной как обход пути (path traversal). Данная уязвимость присутствует во всех версиях библиотеки DotNetZip, начиная с 1.10.1 и заканчивая 1.16.0. По сути, механизм извлечения файлов из архива не осуществляет достаточную проверку и санитизацию имён файлов и путей, содержащихся в ZIP-архиве. Следовательно, злоумышленник может создать специально сформированный архив, в котором путь к извлекаемому файлу будет содержать последовательности символов, позволяющие выйти за пределы предназначенной директории.

На практике, если приложение использует уязвимую версию DotNetZip для распаковки архивов, полученных из ненадёжных источников, атакующий может заставить это приложение записать вредоносный исполняемый файл (payload) в критически важные системные каталоги. Впоследствии этот файл может быть выполнен, что приведёт к полному компрометированию системы. Более того, часто подобные уязвимости используются для обеспечения устойчивости (persistence) угрозы в системе после первоначального взлома.

Оценка по методологии CVSS подтверждает исключительную серьёзность угрозы. Базовая оценка по версии CVSS 2.0 составляет максимальные 10.0 баллов, а по более современной CVSS 3.1 - 9.8 баллов. Оба показателя соответствуют критическому уровню опасности. Вектор атаки оценивается как сетевой (AV:N), что не требует физического доступа к системе или особых привилегий у пользователя (PR:N). Также не требуется взаимодействие с пользователем (UI:N), что делает уязвимость особенно опасной для серверных приложений, автоматически обрабатывающих входящие данные, например, в службах загрузки файлов.

Производитель, в данном случае сообщество разработчиков проекта DotNetZip, уже подтвердил наличие проблемы. Стоит отметить, что уязвимость была устранена. Разработчики предоставили рекомендации по исправлению, с которыми можно ознакомиться в их официальном репозитории на GitHub. Основной и единственной рекомендованной мерой защиты является немедленное обновление библиотеки до актуальной, исправленной версии. Пользователям и разработчикам, интегрировавшим DotNetZip в свои продукты, необходимо проверить зависимости и обеспечить применение патча.

Хотя на текущий момент информация о наличии публичных эксплойтов, использующих эту уязвимость, уточняется, её критический характер предполагает высокую вероятность появления таких инструментов в краткосрочной перспективе. Следовательно, окно для принятия защитных мер может быть крайне ограниченным. Злоумышленники, особенно представители APT-группировок, часто активно сканируют интернет на наличие систем, использующих известные уязвимости с высоким рейтингом CVSS.

Таким образом, системным администраторам и разработчикам программного обеспечения на .NET настоятельно рекомендуется провести инвентаризацию. Необходимо выяснить, используется ли в их инфраструктуре или продуктах уязвимая версия DotNetZip. В случае обнаружения таковой следует незамедлительно применить обновление. Кроме того, в качестве дополнительной меры предосторожности, следует пересмотреть логику работы приложений с архивами, особенно из непроверенных источников. В идеале, распаковку стоит проводить в изолированные среды, например, песочницы (sandbox), с строгими ограничениями прав доступа к файловой системе.

Обнаружение этой уязвимости служит очередным напоминанием о важности регулярного мониторинга зависимостей в программных проектах. Даже библиотеки с открытым исходным кодом, считающиеся надёжными и проверенными временем, могут содержать серьёзные уязвимости. Регулярное обновление сторонних компонентов должно быть неотъемлемой частью жизненного цикла безопасности любой информационной системы. Своевременное применение исправлений остаётся самым эффективным способом защиты от подобных угроз.

Ссылки

Комментарии: 0