The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

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

В утилите 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". Данное ограничение сужает область применения атаки системами с предсказуемыми путями распаковки, например, приложениями распаковывающими архивы в заранее известные директории.

  1. Главная ссылка к новости (http://seclists.org/fulldisclo...)
  2. OpenNews: Релиз GNU tar 1.29
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: tar
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.2, pauc (?), 22:27, 27/10/2016 [ответить] [показать ветку] [···]    [к модератору]
  • +11 +/
    Необходимо срочно включить tar в systemd! GNU не справляется.
     
     
  • 2.7, Аноним (-), 23:18, 27/10/2016 [^] [ответить]    [к модератору]
  • –1 +/
    sandbox?
     
  • 2.12, user (??), 00:29, 28/10/2016 [^] [ответить]    [к модератору]
  • +3 +/
    Сначала emacs и qt, фреймворки должны быть интегрированы.
     
     
  • 3.39, Andrey Mitrofanov (?), 10:09, 28/10/2016 [^] [ответить]    [к модератору]
  • +5 +/
    > Сначала emacs и qt, фреймворки должны быть интегрированы.

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

     
     
  • 4.56, Аноним (-), 22:32, 30/10/2016 [^] [ответить]     [к модератору]
  • +/
    Ты там потише, а то нокия уже доперла однажды до прелоада браузера сразу после с... весь текст скрыт [показать]
     
  • 1.3, Аноним (-), 22:29, 27/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +3 +/
    О, ну хоть по этому поводу нет отдельного сайта. Пока что.
     
  • 1.4, rm_ (ok), 22:42, 27/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +8 +/
    > информация о проблеме была отправлена сопровождающему GNU tar ещё в марте, но он не посчитал указанную проблему уязвимостью, поэтому проблема на момент публикации эксплоита остаётся неисправленной.

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

     
     
  • 2.6, Аноним (-), 23:17, 27/10/2016 [^] [ответить]     [к модератору]  
  • +/
    Может не помочь Проекту с числом авторов больше одного мэйнтейнеру совершенно н... весь текст скрыт [показать]
     
  • 2.11, angra (ok), 00:29, 28/10/2016 [^] [ответить]    [к модератору]  
  • +6 +/
    Ты бы хоть разобрался в этой "уязвимости", манагер.
     
     
  • 3.22, Аноним (-), 02:07, 28/10/2016 [^] [ответить]    [к модератору]  
  • +/
    "Попробуйте сменить мишку или компьютер" (c)
    http://www.linux.org.ru/news/multimedia/12957216?cid=12972509
     
  • 2.40, Andrey Mitrofanov (?), 10:11, 28/10/2016 [^] [ответить]     [к модератору]  
  • +2 +/
    Решение есть Возьми его на работу -- и сразу начинай говорить, чего да как дела... весь текст скрыт [показать]
     
  • 1.5, interuser (ok), 22:46, 27/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    А busybox?
     
  • 1.8, Аноним (-), 23:23, 27/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +14 +/
    > позволяющая при раскрытии архива осуществить запись за пределы целевого каталога, заданного в командной строке

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

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

     
     
  • 2.17, Аноним (-), 01:33, 28/10/2016 [^] [ответить]    [к модератору]  
  • +1 +/
    Выходит в тексте новости враньё.
     
     
  • 3.26, angra (ok), 04:43, 28/10/2016 [^] [ответить]     [к модератору]  
  • +3 +/
    Открытого вранья нет, так как под целевого каталога, заданного в командной стро... весь текст скрыт [показать]
     
  • 2.38, Аноним (-), 09:58, 28/10/2016 [^] [ответить]     [к модератору]  
  • +/
    Условный пример Вы открываете архив и смотрите до второго уровня что в нём толь... весь текст скрыт [показать]
     
  • 1.9, fi (ok), 23:29, 27/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    что-то подсказывает, что автор прав - смотреть надо что делаешь.
     
     
  • 2.10, Аноним (-), 23:30, 27/10/2016 [^] [ответить]    [к модератору]  
  • +/
    rm -rf / usr
     
     
  • 3.14, burik666 (ok), 00:57, 28/10/2016 [^] [ответить]    [к модератору]  
  • –3 +/
    достали уже...  rm -rf / не работает, т.к. по дефолту "--preserve-root do not remove '/' (default)"
     
     
  • 4.18, Аноним (-), 01:42, 28/10/2016 [^] [ответить]    [к модератору]  
  • +/
    В FreeBSD работает. Достали уже школьники.
     
     
  • 5.27, interuser (ok), 05:25, 28/10/2016 [^] [ответить]    [к модератору]  
  • +/
    Что работает? Ты удали все, а потом посмотри что осталось. Я могу даже дать тебе доступ, чтобы ты потренировался ядро у FreeBSD снести. При определенной настройке попытки твои не увенчаются успехом.
     
     
  • 6.41, Аноним (-), 10:48, 28/10/2016 [^] [ответить]    [к модератору]  
  • +/
    Давай, терминал уже открыл.
     
     
  • 7.43, Аноним (-), 11:33, 28/10/2016 [^] [ответить]    [к модератору]  
  • +/
    Ок. Отправил логин/пароль на почту.
     
     
  • 8.48, Аноним (-), 13:27, 28/10/2016 [^] [ответить]    [к модератору]  
  • +2 +/
    Снес
     
     
  • 9.53, interuser (ok), 13:12, 29/10/2016 [^] [ответить]    [к модератору]  
  • +/
    теперь посмотри что осталось.
     
  • 2.45, анонимус (??), 12:29, 28/10/2016 [^] [ответить]     [к модератору]  
  • +/
    Прав или не прав, а судя по их This type of scenario has been successfully expl... весь текст скрыт [показать]
     
  • 1.13, angra (ok), 00:41, 28/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +6 +/
    Я нашел куда более страшную "уязвимость" в tar. Если сказать ему просто распаковать специально подготовленный архив целиком, что делается в подавляющем большинстве случаев, то он это сделает! В результате атакующий может добиться записи файлов в сторонние каталоги при распаковке, например, подменить ключ входа по SSH или сценарии автозапуска bash. В случае если архив распаковывается пользователем root возможно организовать перезапись системных файлов и получить полномочия суперпользователя (например, переписав crontab). В общем всё то же самое, повлияет на тех же самых балбесов, что распаковывают чужие tar архивы от рута в корень или от пользователя напрямую в хомяк, только с операцией на порядки более частой.
     
     
  • 2.21, cmp (ok), 02:06, 28/10/2016 [^] [ответить]     [к модератору]  
  • +/
    А зачем это делать в корень-то ... весь текст скрыт [показать]
     
     
  • 3.25, angra (ok), 04:29, 28/10/2016 [^] [ответить]     [к модератору]  
  • +3 +/
    Как зачем Чтобы уязвимость заработала Ты бы еще спросил зачем это делать с ч... весь текст скрыт [показать]
     
  • 2.29, Аноним (-), 05:50, 28/10/2016 [^] [ответить]    [к модератору]  
  • –2 +/
    Что несешь? Ты каждый раз, скачивая CMS (вордпрес, джумла) ты отрываешь архив, и изучаешь, нет ли там ".."?
     
     
  • 3.37, нет (??), 09:43, 28/10/2016 [^] [ответить]    [к модератору]  
  • +1 +/
    он не распаковывает в корень
    вин
     
  • 3.42, cmp (ok), 11:25, 28/10/2016 [^] [ответить]     [к модератору]  
  • +/
    ахаха, ну да, каждый раз, а потом извлекаю по 1 элементу из корня архива в корен... весь текст скрыт [показать]
     
  • 1.15, Аноним (-), 01:21, 28/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +3 +/
    > Например, подготовив архив с файлом "etc/motd/../etc/shadow", атакующий может переписать /etc/shadow

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

     
     
  • 2.16, angra (ok), 01:29, 28/10/2016 [^] [ответить]    [к модератору]  
  • +1 +/
    Вот именно. Если пройти по ссылке, то в этом примере для срабатывания "уязвимости" используется следующая команда:
    # tar -C / -xvf archive.tar etc/motd

     
     
  • 3.33, Аноним (-), 08:01, 28/10/2016 [^] [ответить]     [к модератору]  
  • +1 +/
    Т е по вашему нормально, что вы запускайте cat tar-poc tar 124 tar xv etc m... весь текст скрыт [показать]
     
  • 2.30, Аноним (-), 05:53, 28/10/2016 [^] [ответить]    [к модератору]  
  • +/
    Без проблем, просто нужно скомбинировать
    etc/motd/../etc/shadow
    etc/motd/../../etc/shadow
    etc/motd/../../../etc/shadow
    etc/motd/../../../../etc/shadow
    и т.д.
    Вот мы и переписали /etc/shadow
     
     
  • 3.36, Нанобот (ok), 09:42, 28/10/2016 [^] [ответить]    [к модератору]  
  • +2 +/
    оно так не работает
    >просто нужно скомбинировать

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

     
  • 2.32, Аноним (-), 07:57, 28/10/2016 [^] [ответить]    [к модератору]  
  • +/
    > Может переписать etc/shadow

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

     
     
  • 3.52, Аноним (-), 20:34, 28/10/2016 [^] [ответить]    [к модератору]  
  • +/
    > что при указании tar раскрывать в /etc

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

     
  • 1.34, Ващенаглухо (ok), 08:09, 28/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Как уже говорили смотреть надо, что распаковываешь.  
    И еще зря / убрается из путей при созданеии архива :)
     
  • 1.35, Нанобот (ok), 09:41, 28/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    по-моему даже на уровень moderate не тянет
     
  • 1.44, Меломан1 (?), 12:01, 28/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • –3 +/
    Хрень какая-то. Кто из под рута распаковывает архивы? Фото на доску почета.
    С остальным справится SELinux и abrt.
     
     
  • 2.49, Аноним (-), 17:01, 28/10/2016 [^] [ответить]    [к модератору]  
  • –2 +/
    Вбздуны
     
  • 2.50, angra (ok), 17:23, 28/10/2016 [^] [ответить]    [к модератору]  
  • +1 +/
    Вообще-то распаковка из под рута это норма. А ты бекап распаковываешь от пользователя, а потом для каждого файла рутом правишь владельца? А для распаковки архивов с содержимым для самого рута создаешь отдельного пользователя, распаковываешь под ним, а потом переносишь в /root?
    Проблема не в том, из под какого пользователя, а в том, куда именно распаковывать.
     
     
  • 3.51, Аноним (-), 18:18, 28/10/2016 [^] [ответить]    [к модератору]  
  • –1 +/
    плюсую!!!
     
  • 3.58, Аноним (-), 14:05, 31/10/2016 [^] [ответить]    [к модератору]  
  • +/
    Проблема не "куда именно распаковывать", а "что именно распаковывать".
     
  • 1.54, Аноним (-), 00:50, 30/10/2016 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    А какое может быть решение проблемы в имени файла есть например etc motd... весь текст скрыт [показать]
     
     
  • 2.55, curious (?), 16:40, 30/10/2016 [^] [ответить]    [к модератору]  
  • +/
    Воу, воу, осади мысли-скакуны.

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

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

     
  • 1.57, Аноним (-), 23:24, 30/10/2016 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    это не уязвимость, - это фича! ;)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor