Исследовательская группа Snyk обнародовала детали уязвимости, затрагивающей тысячи программных продуктов и большие объемы пользовательских данных. Ошибка связана с распаковкой файловых архивов в библиотеках с открытым кодом, она позволяет обойти целевой каталог и в итоге выполнить на скомпрометированном устройстве небезопасную команду.

Проблема получила название Zip Slip, поскольку атака совершается с помощью файлов zip, rar, jar, 7z и других форматов. Ошибка не является уязвимостью конкретного архиватора, а связана с компонентами, которые осуществляют распаковку данных. Обычно за эту операцию отвечает одна из типовых подпрограмм, доступных в репозиториях или фреймворках.

Эксперты Snyk выяснили, что многие библиотеки с открытым кодом не проверяют корректность пути распаковки при обработке архива. Это значит, что злоумышленники способны разместить вредоносные файлы за пределами целевого каталога. Уязвимость позволяет киберпреступникам переписать данные операционной системы или, например, выполнить вредоносный код при перезапуске устройства.

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

Например, файл /../../../../../../../tmp/evil.sh с большой долей вероятности будет извлечен в папку tmp корневого каталога. В большинстве архиваторов такая операция запрещена, однако стандарт ZIP позволяет ее выполнить. Злоумышленникам остается лишь найти или разработать утилиты для создания нестандартных архивов.

Скомпрометированные библиотеки используются в тысячах программных продуктов. Исследователи обнаружили уязвимый код в компонентах .NET, Go, JavaScript, Groovy и других средств разработки. Хуже всего ситуация обстоит в Java, где отсутствует единый обработчик архивов и разные проекты реализуют функцию распаковки по-разному.

Как утверждают эксперты Snyk, речь идет о системном баге в реализации функции. Долгое время недостаток проникал в разные библиотеки, оставаясь незамеченным. Уязвимый код найден даже на специализированном сайте вопросов и ответов Stack Overflow, где программисты делятся своими разработками.

По информации аналитиков, ошибка присутствует в Google Cloud Platform, некоторых продуктах Amazon Web Services, Alibaba Group, HP, LinkedIn и ряде других сервисов. Прежде чем раскрывать технические детали уязвимости, исследователи постарались проинформировать о наличии бага максимальное число разработчиков.

Как утверждают эксперты, Zip Slip уже пропатчена в программах Oracle, Pivotal, HP, LinkedIn и Apache. Остальные разработчики пока не отчитались о выпуске заплаток. При этом исследователи отмечают, что устранение уязвимости в библиотеках мейнфреймов и других платформ не означает решение проблемы, так как тысячи созданных на них программ могут использовать старые варианты кода.

Ранее другую серьезную уязвимость удалось обнаружить в отечественной разработке 7-zip. По сообщению ИБ-специалистов, программа могла скрытно обрабатывать отправленные злоумышленниками вредоносные файлы и выполнить удаленный код на компьютере жертвы.

Категории: Кибероборона, Уязвимости