URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 109498
[ Назад ]

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

Отправлено opennews , 27-Окт-16 22:18 
В утилите GNU tar выявлена (http://seclists.org/fulldisclosure/2016/Oct/96) уязвимость (CVE-2016-6321 (https://security-tracker.debian.org/tracker/CVE-2016-6321)), позволяющая при раскрытии архива осуществить запись за пределы целевого каталога, заданного в командной строке. Например, запустив распаковку одного файла, может быть переписан другой файл или осуществлено раскрытие файлов в обход заданным маскам и исключениям.

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

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

URL: http://seclists.org/fulldisclosure/2016/Oct/96
Новость: http://www.opennet.ru/opennews/art.shtml?num=45383


Содержание

Сообщения в этом обсуждении
"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено pauc , 27-Окт-16 22:27 
Необходимо срочно включить tar в systemd! GNU не справляется.

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 27-Окт-16 23:18 
sandbox?

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено user , 28-Окт-16 00:29 
Сначала emacs и qt, фреймворки должны быть интегрированы.

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Andrey Mitrofanov , 28-Окт-16 10:09 
> Сначала emacs и qt, фреймворки должны быть интегрированы.

LibreOffice в качестве pid(1) должен быть хорош!!


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 30-Окт-16 22:32 
> LibreOffice в качестве pid(1) должен быть хорош!!

Ты там потише, а то нокия уже доперла однажды до прелоада браузера сразу после старта системы. Здорово же если браузер вываливается на экран сразу как ты клацнул ярлык. А то что он трскал цать мегов даже если ты им не пользовался... ннннну... красота^W п0нт^W UX требует жертв, да?


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 27-Окт-16 22:29 
О, ну хоть по этому поводу нет отдельного сайта. Пока что.

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено rm_ , 27-Окт-16 22:42 
> информация о проблеме была отправлена сопровождающему GNU tar ещё в марте, но он не посчитал указанную проблему уязвимостью, поэтому проблема на момент публикации эксплоита остаётся неисправленной.

Этому весьма уважаемому и несомненно высоко компетентному человеку запретить кодить пожизненно.


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 27-Окт-16 23:17 
> Этому весьма уважаемому и несомненно высоко компетентному человеку запретить кодить пожизненно.

Может не помочь. Проекту с числом авторов больше одного мэйнтейнеру совершенно не обязательно писать код для внесения багов.


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено angra , 28-Окт-16 00:29 
Ты бы хоть разобрался в этой "уязвимости", манагер.

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 28-Окт-16 02:07 
"Попробуйте сменить мишку или компьютер" (c)
http://www.linux.org.ru/news/multimedia/12957216?cid=12972509

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Andrey Mitrofanov , 28-Окт-16 10:11 
>> информация о проблеме была отправлена сопровождающему GNU tar ещё в марте, но он не посчитал указанную проблему уязвимостью, поэтому проблема на момент публикации эксплоита остаётся неисправленной.
> Этому весьма уважаемому и несомненно высоко компетентному человеку запретить кодить пожизненно.

Решение есть! Возьми его на работу -- и сразу начинай говорить, чего да как делать.


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено interuser , 27-Окт-16 22:46 
А busybox?

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 27-Окт-16 23:23 
> позволяющая при раскрытии архива осуществить запись за пределы целевого каталога, заданного в командной строке

Эта "уязвимость" НЕ ПОЗВОЛЯЕТ осуществить запись за пределы целевого каталога. Она позволяет при частичной распаковке архива извлечь файлы, не указанные в командной строке. Например, если вы извлекаете каталог "foo" из архива в /home, то может быть перезаписан не только /home/foo, но и /home/bar, хотя пользователь этого не заказывал. Но за пределы /home (например, в /etc) ничего записать не получится.

Если это и можно считать уязвимостью, то лишь минорной.


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 28-Окт-16 01:33 
Выходит в тексте новости враньё.

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено angra , 28-Окт-16 04:43 
Открытого вранья нет, так как под "целевого каталога, заданного в командной строке" в команде "tar -C / -xvf archive.tar etc/motd" можно понимать как "/" так и "etc". Так что  скорее небольшая манипуляция с целью сделать из представителя семейства Muscidae представителя семейства Elephantidae.



"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 28-Окт-16 09:58 
Условный пример:
Вы открываете архив и смотрите до второго уровня что в нём только файлы конкретных настроек:
superService/conf/....
superService/startup/....
superService/startup/....

естественно вы по все каталоги "до конца дерева" не просматриваете.

А при распаковке в /etc там оказывается
superService/conf/default/../../../systemservice.conf

как то так :)


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено fi , 27-Окт-16 23:29 
что-то подсказывает, что автор прав - смотреть надо что делаешь.

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 27-Окт-16 23:30 
rm -rf / usr

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено burik666 , 28-Окт-16 00:57 
достали уже...  rm -rf / не работает, т.к. по дефолту "--preserve-root do not remove '/' (default)"

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 28-Окт-16 01:42 
В FreeBSD работает. Достали уже школьники.

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено interuser , 28-Окт-16 05:25 
Что работает? Ты удали все, а потом посмотри что осталось. Я могу даже дать тебе доступ, чтобы ты потренировался ядро у FreeBSD снести. При определенной настройке попытки твои не увенчаются успехом.

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 28-Окт-16 10:48 
Давай, терминал уже открыл.

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 28-Окт-16 11:33 
Ок. Отправил логин/пароль на почту.

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 28-Окт-16 13:27 
Снес

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено interuser , 29-Окт-16 13:12 
теперь посмотри что осталось.

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено анонимус , 28-Окт-16 12:29 
>что-то подсказывает, что автор прав - смотреть надо что делаешь.

Прав или не прав, а судя по их "This type of scenario has been successfully exploited in the real world to gain a remote code execution as root in different environments" скрипты с такими вот командами действительно имеют место быть.

И вообще авторы tar поступили странно… Почему именно весь кусок перед '..'? Почему не после? Или просто выкидывать один '..' или заменять на какой-нибудь '$$'…


"Уязвимость в GNU tar, позволяющая перезаписать сторонние файлы"
Отправлено angra , 28-Окт-16 00:41 
Я нашел куда более страшную "уязвимость" в tar. Если сказать ему просто распаковать специально подготовленный архив целиком, что делается в подавляющем большинстве случаев, то он это сделает! В результате атакующий может добиться записи файлов в сторонние каталоги при распаковке, например, подменить ключ входа по SSH или сценарии автозапуска bash. В случае если архив распаковывается пользователем root возможно организовать перезапись системных файлов и получить полномочия суперпользователя (например, переписав crontab). В общем всё то же самое, повлияет на тех же самых балбесов, что распаковывают чужие tar архивы от рута в корень или от пользователя напрямую в хомяк, только с операцией на порядки более частой.

"Уязвимость в GNU tar, позволяющая перезаписать сторонние файлы"
Отправлено cmp , 28-Окт-16 02:06 
> (например, переписав crontab). В общем всё то же самое, повлияет на
> тех же самых балбесов, что распаковывают чужие tar архивы от рута
> в корень или от пользователя напрямую в хомяк, только с операцией
> на порядки более частой.

А зачем это делать? в корень-то


"Уязвимость в GNU tar, позволяющая перезаписать сторонние файлы"
Отправлено angra , 28-Окт-16 04:29 
Как зачем? Чтобы "уязвимость" заработала. Ты бы еще спросил зачем это делать с чужими архивами.

"Здравствуйте, я молдавский вирус. По причине ужасной бедности моего создателя и низкого уровня развития технологий в нашей стране я не способен причинить какой-либо вред Вашему компьютеру. Поэтому очень прошу Вас, пожалуйста, сами сотрите какой-нибудь важный для Вас файл, а потом разошлите меня по почте другим адресатам. Заранее благодарю за понимание и сотрудничество."


"Уязвимость в GNU tar, позволяющая перезаписать сторонние файлы"
Отправлено Аноним , 28-Окт-16 05:50 
Что несешь? Ты каждый раз, скачивая CMS (вордпрес, джумла) ты отрываешь архив, и изучаешь, нет ли там ".."?

"Уязвимость в GNU tar, позволяющая перезаписать сторонние файлы"
Отправлено нет , 28-Окт-16 09:43 
он не распаковывает в корень
вин

"Уязвимость в GNU tar, позволяющая перезаписать сторонние файлы"
Отправлено cmp , 28-Окт-16 11:25 
> вордпрес и джумла

ахаха, ну да, каждый раз, а потом извлекаю по 1 элементу из корня архива в корень системы, а потом по-одному переношу куда надо, или даже нет, прям корень шарю по хттп, мне ведь нравится тупить отделяя системные файлы от прочено говна, иногда прям /usr/lib распаковываю, ведь это так весело.


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 28-Окт-16 01:21 
> Например, подготовив архив с файлом "etc/motd/../etc/shadow", атакующий может переписать /etc/shadow

Может переписать etc/shadow
но никак не /etc/shadow


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено angra , 28-Окт-16 01:29 
Вот именно. Если пройти по ссылке, то в этом примере для срабатывания "уязвимости" используется следующая команда:
# tar -C / -xvf archive.tar etc/motd


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 28-Окт-16 08:01 
> Вот именно. Если пройти по ссылке, то в этом примере для срабатывания
> "уязвимости" используется следующая команда:
> # tar -C / -xvf archive.tar etc/motd

Т.е. по вашему нормально, что вы запускайте "cat tar-poc.tar | tar xv etc/motd" чтобы переписать один файл etc/motd, а он вместо этого переписывает вам совсем другой файл etc/shadow?


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 28-Окт-16 05:53 
Без проблем, просто нужно скомбинировать
etc/motd/../etc/shadow
etc/motd/../../etc/shadow
etc/motd/../../../etc/shadow
etc/motd/../../../../etc/shadow
и т.д.
Вот мы и переписали /etc/shadow

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Нанобот , 28-Окт-16 09:42 
оно так не работает
>просто нужно скомбинировать

великий комбинатор обосрался


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 28-Окт-16 07:57 
> Может переписать etc/shadow

Относительно /. В том то и уязвимость, что при указании tar раскрывать в /etc он раскроет не в /etc/etc/shadow, а в /etc/shadow.  


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 28-Окт-16 20:34 
> что при указании tar раскрывать в /etc

Это 3.14здец!
Как гвоздик в розетку сувать - если в ноль (или тапки сухие) то и не 2.71бнет.


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Ващенаглухо , 28-Окт-16 08:09 
Как уже говорили смотреть надо, что распаковываешь.  
И еще зря / убрается из путей при созданеии архива :)

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Нанобот , 28-Окт-16 09:41 
по-моему даже на уровень moderate не тянет

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Меломан1 , 28-Окт-16 12:01 
Хрень какая-то. Кто из под рута распаковывает архивы? Фото на доску почета.
С остальным справится SELinux и abrt.

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 28-Окт-16 17:01 
Вбздуны

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено angra , 28-Окт-16 17:23 
Вообще-то распаковка из под рута это норма. А ты бекап распаковываешь от пользователя, а потом для каждого файла рутом правишь владельца? А для распаковки архивов с содержимым для самого рута создаешь отдельного пользователя, распаковываешь под ним, а потом переносишь в /root?
Проблема не в том, из под какого пользователя, а в том, куда именно распаковывать.

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 28-Окт-16 18:18 
плюсую!!!

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 31-Окт-16 14:05 
Проблема не "куда именно распаковывать", а "что именно распаковывать".

"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 30-Окт-16 00:50 
А какое может быть решение проблемы "в имени файла есть /../"?
например
etc/motd/../etc/shadow
etc/motd/../vmlinuz

Куда такие файлы должны быть распакованы?
В файл указанный в маске для распаковки?
Что делать с масками --wildcards "m*"
?
Считать имя повреждённым и вообще не распаковывать такие файлы?


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено curious , 30-Окт-16 16:40 
Воу, воу, осади мысли-скакуны.

Тот кто распаковывает указывает что он хочет распаковать в маске для распаковки.
То что программа делает с именами файлов _перед_ распаковкой это распаковывающему совсем неинтересно.

Если короче - маска применяется _после_ всех манипуляций с именем файла.


"Уязвимость в GNU tar, позволяющая перезаписать сторонние фай..."
Отправлено Аноним , 30-Окт-16 23:24 
это не уязвимость, - это фича! ;)