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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.