Уязвимость в GNU tar, позволяющая перезаписать сторонние файлы

27 октября 2016 года

В утилите GNU tar выявлена уязвимость ( CVE-2016-6321), позволяющая при раскрытии архива осуществить запись вне целевого пути, заданного в командной строке. Например, запуск распаковки одного файла, может привести к перезаписи другого файла или раскрытию файлов в обход заданным маскам и исключениям.

Подготовив специальным образом архив атакующий может добиться записи сторонних файлов при распаковке, например, подменить ключ входа по SSH или сценарии автозапуска bash при распаковке в домашнюю директорию. В случае если архив распаковывается пользователем root возможно организовать перезапись системных файлов и получить полномочия суперпользователя (например, переписав crontab). Интересно, что информация о проблеме была отправлена сопровождающему GNU tar ещё в марте, но из-за специфичных условий её проявления сопровождающий не посчитал указанную проблему уязвимостью, поэтому проблема на момент публикации эксплоита остаётся неисправленной. Представители Red Hat признали проблему и присвоили ей средний (moderate) уровень опасности.

Уязвимость связана с некорректным вырезанием символов ".." из путей в архиве - при наличии ".." перед распаковкой осуществляется удаление части пути, предшествующей "..", но проверка соответствия маскам осуществляется по исходному варианту. Например, подготовив архив с файлом "etc/motd/../etc/shadow", атакующий может переписать etc/shadow в случае попытки раскрытия файла etc/motd (tar удалит "etc/motd/../", но оставит "etc/shadow", который будет обработан, несмотря на то, что явно инициирована распаковка только etc/motd).

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

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Уязвимость в GNU tar, позволяющая перезаписать сторонние файлы», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.