Xakep #305. Многошаговые SQL-инъекции
Специалисты Synk рассказали о критической уязвимости Zip Slip, затрагивающей различные опенсорсные библиотеки, ответственные за работу с файлами архивов. Обнаруженные специалистами проблемы затрагивают такие форматы, как .tar, .jar, .war, .cpio, .apk, .rar и .7z, то есть Zip Slip представляет опасность для множества проектов и экосистем, и позволяет атакующему добиться исполнения произвольного кода.
В корне проблемы Zip Slip лежит перезапись произвольных файлов, которую нужно использовать в сочетании с атакой на обход каталога, реализовать которую возможно во время извлечения файлов из архивов вышеперечисленных форматов.
Исследователи пишут, что под угрозой оказались тысячи проектов, написанные на самых разных языках, включая JavaScript, Ruby, Java, .NET и Go, в том числе принадлежащих Google, Oracle, IBM, Apache, Amazon, Spring/Pivotal, Linkedin, Twitter, Alibaba, Eclipse, OWASP, ElasticSearch, JetBrains и так далее. Уязвимый к Zip Slip код может присутствовать буквально где угодно, а его разработчики могут даже не знать об этом. Специалисты подготовили для разработчиков специальный документ (PDF), в котором подробно описали, как работает уязвимость и как ее обнаружить.
Эксплуатировать Zip Slip возможно через специальный архив, который будет содержать имена файлов, необходимые для реализации обхода каталога. Если такой архив будет распакован с использованием любой уязвимой библиотеки, атакующий в итоге сможет разархивировать вредоносные файлы за пределы предназначенной для этого директории. При этом злоумышленник получает возможность перезаписать даже важные системные или исполняющие файлы, файлы конфигурации и так далее. В конечном счете, этот трюк вынудит систему или пользователя запустить малварь, то есть атакующий осуществит удаленное исполнение произвольного кода.
«Данная уязвимость может использоваться для повреждения файлов конфигурации или других важных ресурсов посредством перезаписи, а также может эксплуатироваться как на клиентской машине, так и на стороне сервера.
Содержимое [вредоносного] файла .zip придется подготавливать вручную. Инструменты для создания архивов в нормальной ситуации не позволяют пользователям добавлять файлы с такими путями, хотя сама спецификация .zip это допускает. Как бы то ни было, имея правильные инструменты, создавать файлы с такими путями очень легко», — пишут эксперты Synk.
Выше можно увидеть видеомонстрацию атаки, но помимо этого специалисты обнародовали и proof-of-concept эксплоит для Zip Slip, что может пригодиться разработчикам потенциально уязвимых решений для тестирования.
Так как специалисты Zip Slip уведомляли разработчиков о проблемах, начиная с апреля 2018 года, в настоящее время уязвимость уже исправлена в некоторых решениях, однако многие другие библиотеки и проекты по-прежнему под угрозой. В GitHub-репозитории Snyk можно найти списки подверженных уязвимости библиотек, а также вышедших исправлений.