The OpenNET Project / Index page

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

12.01.2018 23:04  Уязвимость в Glibc, позволяющая поднять привилегии в системе

В стандартной библиотеке Glibc выявлена уязвимость (CVE-2018-1000001), вызванная переполнением через нижнюю границу буфера в функции realpath(), проявляющимся при возврате относительного пути системным вызовом getcwd(). Изначально ядро Linux возвращало в getcwd() только абсолютные пути, но затем в ядре 2.6.36 поведение было изменено, но функции Glibc не были адаптированы на обработку относительных путей.

Относительные пути возвращаются при достаточно редкой ситуации, когда процесс не меняет текущую директорию после выполнения вызова chroot и путь к корню оказывается вне области текущего дерева каталогов. Начиная с ядра Linux 2.6.36 начальная часть такого пути заменяется на строку "(unreachable)". Непривилегированный пользователь может добиться аналогичного эффекта сменив текущую директорию процесса на путь в другом пространстве имён. Атакующий может создать каталог "(unreachable)" и использовать его как начало относительного пути.

При обработке символической ссылки с относительными путями (/../) realpath() использует getcwd() для получения информации о текущем каталоге для нормализации ссылки. Так как вызов getcwd() может вернуть не полный путь, а обрезанный с заменой части на "(unreachable)", а realpath() на подобную замену не рассчитан и пытается найти "/" корня пути, при разборе подобного пути он не остановится на начале "(unreachable)", а продолжит разбор памяти. Суть нормализации в удалении лишних элементов ("/./", "/../" и "//") в пути, поэтому буфер для записи итогового пути выделяется на основе размера имеющегося пути, без расчёта, что разбор продолжится за пределами "(unreachable)". Так как заполнение осуществляется в обратном порядке, то при обработке символической ссылки с комбинацией переходов "/../" можно добиться выхода указателя в нужную область памяти до начала выделенного буфера и содержимое части пути будет записано в область перед буфером.

Выявившие уязвимость исследователи подготовили рабочий прототип эксплоита, позволяющий поднять свои привилегии до прав root через манипуляцию с исполняемыми файлами с флагом suid root, в которых вызывается функция realpath(). В эксплоите используется утилита /bin/umount, которая вызывает realpath() в коде инициализации локали, выполняемом до сброса привилегий. Для инициирования появления относительного пути в эксплоите используется пространство имён идентификаторов пользователя, т.е. атака возможна только при активации поддержки "user namespaces" (sysctl kernel.unprivileged_userns_clone=1). Работа эксплоита продемонстрирована в Debian Stretch на системе с архитектурой amd64.

Обновление пакетов с устранением уязвимости уже выпущено для SUSE и openSUSE. Исправление пока недоступно для Ubuntu, Debian, Fedora и RHEL.

  1. Главная ссылка к новости (http://seclists.org/oss-sec/20...)
  2. OpenNews: Уязвимость в Glibc ld.so, позволяющая поднять свои привилегии в системе
  3. OpenNews: Удалённо эксплуатируемая уязвимость в Glibc, охватывающая большинство сетевых приложений в Linux
  4. OpenNews: Уязвимость GHOST в Glibc может проявляться в web-приложениях на языке PHP
  5. OpenNews: Критическая уязвимость в Glibc, которая может привести к удалённому выполнению кода в Linux
  6. OpenNews: В Glibc обнаружена серьезная уязвимость
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: glibc, security
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 23:39, 12/01/2018 [ответить] [смотреть все]    [к модератору]
  • +13 +/
    Мне нравится этот красивый номер уязвимости.
     
     
  • 2.3, Багтрекер, 23:54, 12/01/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]
  • +/
    CVE-2018-1000000 топчик
     
     
  • 3.49, pavlinux, 17:09, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]
  • +2 +/
    Да что ж такое-то, Meltdown Spectre не работают, тут опять подстава code ... весь текст скрыт [показать]
     
     
  • 4.75, Аноним, 23:36, 16/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Подстава случилась тогда когда придумали относительные пути, со всякими и про... весь текст скрыт [показать]
     
  • 1.2, Аноним, 23:45, 12/01/2018 [ответить] [смотреть все]    [к модератору]  
  • +4 +/
    > user namespaces

    Ну почему каждая третья уязвимость связана с *этим*?

     
     
  • 2.10, ы, 01:26, 13/01/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +4 +/
    С напряжением ждём уязвимости /dev/null
     
     
  • 3.33, ХипстерСпам, 12:32, 13/01/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    При обращении к /dev/null можно задудосить и без того багнутый Meltdown камень
     
  • 2.13, EHLO, 02:29, 13/01/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +4 +/
    Хайпонули немножечко, бывает Отключил, если вдруг не отключено по дефолту и заб... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.23, backbone, 08:46, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Первый раз отключил в августе 12-го года, что за уязвимость была не вспомню, но... весь текст скрыт [показать]
     
     
  • 4.53, Аноним, 19:04, 13/01/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Ну и как, контейнеры работают?
     
     
  • 5.55, backbone, 19:15, 13/01/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > Ну и как, контейнеры работают?

    Нет, а должны?

     
  • 3.25, Andrey Mitrofanov, 09:55, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Они шевелятся, ты не понял Они готовят user namespaces на царствование Когда ... весь текст скрыт [показать]
     
  • 1.6, минонА, 00:13, 13/01/2018 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Всем срочно переходить на musl?
     
     
  • 2.31, Аноним, 12:23, 13/01/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    там пользователей из ад нету, как мы будем деньги микрософту платить?
     
  • 2.54, Аноним, 19:09, 13/01/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    Можно подумать, в прочих либцах совсем нет уязвимостей.
     
  • 2.76, Аноним, 23:48, 16/01/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    В нем тоже CVE случаются Переходить надо на другой глобус, где програмисты не о... весь текст скрыт [показать] [показать ветку]
     
  • 1.8, ыы, 00:47, 13/01/2018 [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    полный опасносте мирок стандартных библиотек :)
     
     
  • 2.14, Анонимчик, 03:04, 13/01/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –4 +/
    Полон опасностей Си-мирок то буфера переполнятся, то стеки слетают, то длину ст... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.15, Crazy Alex, 03:36, 13/01/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +17 +/
    Правда, тупило бы непредсказуемо, память жрало и имело бы свои классы ошибок -- на managed языках как-то быстро расслабляются, с управлением ресурсами в особенности, забывая, что ресурсы - это далеко не только память.
     
     
  • 4.29, iZEN, 11:13, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Для Apple Lisa и Apple IIe большая часть программ написана на Pascal Apple Obje... весь текст скрыт [показать]
     
     
  • 5.34, h31, 12:38, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Всё переврали Там речь шла про скорость отклика в консольке В Apple IIe она бы... весь текст скрыт [показать]
     
     
  • 6.37, Адекват, 14:52, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Это все галимая теория, в реальных условиях, у пользователя на его смартфоне за ... весь текст скрыт [показать]
     
  • 5.56, Аноним, 19:17, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Пчёлы iZEN против мёда ... весь текст скрыт [показать]
     
     
  • 6.60, iZEN, 20:54, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –5 +/
    В Android нет Java Как язык высокого уровня используется, а как бинарный код - ... весь текст скрыт [показать]
     
     
  • 7.73, _, 17:22, 16/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ты Мастер разбирающийся в сортах Tm Остальным пох, жаба она и в дройдах - жаб... весь текст скрыт [показать]
     
     
  • 8.74, iZEN, 21:03, 16/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    А вот интересно, как вы разделяете, Oracle Access Manager системное или несистем... весь текст скрыт [показать]
     
  • 7.78, Аноним, 18:05, 17/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Java может и нет А тормозное памятежручее г вно - есть Так какая разница P S ... весь текст скрыт [показать]
     
     
  • 8.79, iZEN, 18:34, 17/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    JVM написана на C Ничего уж тут не поделаешь ... весь текст скрыт [показать]
     
  • 5.63, Led, 22:51, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +5 +/
    Выводы Java - г-но ... весь текст скрыт [показать]
     
  • 4.35, RobotsCantPoop, 14:37, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Ну да, а то на C CPP софт не тупит, не течёт, сжирая гигабайты, и не падает Ну ... весь текст скрыт [показать]
     
  • 4.41, RobotsCantPoop, 15:14, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Ну да, а в C CPP не расслабляются, прям так всё качественно контролируют, что со... весь текст скрыт [показать]
     
  • 4.67, RobotsCantPoop, 13:26, 14/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Хипстота не в курсе существования нормальных языков и концептов Неудивительно ... весь текст скрыт [показать]
     
     
  • 5.70, щи, 10:37, 15/01/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Фантастика на уровне "АйФак 10". В вашей реальности хипстота на C пишет.
     
  • 3.17, Аноним, 06:32, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +3 +/
    Ты внимательно читал описание бага Ну допустим это был бы С и getcwd возвра... весь текст скрыт [показать]
     
     
  • 4.18, Анонимчик, 07:18, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Это слишком сложно для меня Я пишу на питоне совсем не что умен, а потому что п... весь текст скрыт [показать]
     
     
  • 5.26, QuAzI, 10:06, 13/01/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +8 +/
    Ты хотел сказать, что ещё не дорос до проектов, на которых нужны настолько сложные вещи, что и переполнение буфера будет вылезать?
     
  • 5.32, Hellraiser, 12:27, 13/01/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    наводящий вопрос - а на чём написан интерпретатор байт-кода питона?
     
     
  • 6.39, iZEN, 15:07, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    А причём тут питон Да хоть на Java - jython, например - это не изменит его инте... весь текст скрыт [показать]
     
     
  • 7.61, Вареник, 21:34, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    jython не на Java язык программирования , а на байткоде, исполняемом JIT ядром ... весь текст скрыт [показать]
     
  • 7.77, Аноним, 00:43, 17/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Да какая разница Валять дурака на левых входных данных можно и на питоне и на я... весь текст скрыт [показать]
     
  • 5.38, Адекват, 14:54, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    А как вы решаете проблему зоопарка версий его величества питона , а то как не с... весь текст скрыт [показать]
     
     
  • 6.40, другой Аноним, 15:07, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Две версии это да, дичайший зоопарк Очевидно, тоже гадает и правит заголовок фа... весь текст скрыт [показать]
     
  • 6.44, Аноним, 15:53, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Пользуюсь 3 6 и игнорирую код, несовместимый с ней Ну примерно, как при сборке ... весь текст скрыт [показать]
     
     
  • 7.48, Адекват, 16:44, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    Поставлю вопрос по другому, вы написали платную программу, но выложили в открыты... весь текст скрыт [показать]
     
     
  • 8.50, Sirob, 17:17, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Ты как раз описал SublimeText К слову, нужная версия Питона там идёт в поставке... весь текст скрыт [показать]
     
  • 8.57, Аноним, 19:27, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Так пиши на третьей версии Про вторую забывать уже пора, поддержка скоро законч... весь текст скрыт [показать]
     
  • 8.59, другой Аноним, 20:38, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +3 +/
    Фантазер ... весь текст скрыт [показать]
     
  • 5.62, Led, 22:46, 13/01/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    > Я пишу на питоне совсем не что умен

    Как раз именно поэтому.

     
  • 4.22, angra, 08:13, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +3 +/
    С это не memory managed язык В нем доступна прямая адресная арфиметика и возм... весь текст скрыт [показать]
     
     
  • 5.28, Аноним, 10:57, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    То, что она там доступна не означает, что ей обязательно нужно пользоваться В C... весь текст скрыт [показать]
     
     
  • 6.30, angra, 11:26, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну осталось глянуть как именно реализован оператор в std string и что произо... весь текст скрыт [показать]
     
     
  • 7.43, Crazy Alex, 15:25, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Так и есть - в соответствии с принципом платить только за что, что используешь ... весь текст скрыт [показать]
     
  • 5.42, Crazy Alex, 15:14, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Возможна, и это хорошо - есть случаи, когда это действительно нужно Но в повсед... весь текст скрыт [показать]
     
  • 1.9, Аноним, 00:49, 13/01/2018 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Кто-то что-то понял из несвязнного набора слов в статье?
     
     
  • 2.20, angra, 07:49, 13/01/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +7 +/
    Мне пришлось таки сходить по ссылке и почитать вполне связный набор слов в английской версии. Далее изложение(не дословный перевод) недостающей части:

    Если realpath() скормить символическую ссылку, которая начинается с некоторого количества "../", то для превращения ее в абсолютный путь он вызывает getcwd, после чего начинает идти по слешам от _конца_ буфера и ожидает, что строка, возвращенная getcwd, начинается с "/". Как следствие из-за отсутствия одной из нужных проверок в случае с "(unreachable)" происходит выход за нижнюю границу буфера до следующего слеша в памяти и перезапись этого участка оставшейся частью симлинки.

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

     
  • 1.19, Аноним, 07:40, 13/01/2018 [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Опять какое-то особое ядро надо иметь Особые настройки Рут ... весь текст скрыт [показать]
     
     
  • 2.21, angra, 07:58, 13/01/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Нет, всего лишь внимательно читать Для инициирования появления относительного ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.24, Аноним, 08:54, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Я внимательно прочитал sysctl управляет настройками в sys, там этой настройки ... весь текст скрыт [показать]
     
     
  • 4.27, angra, 10:55, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Я вообще-то про то, что в статье сказано о необходимости включения этого механиз... весь текст скрыт [показать]
     
  • 4.52, EHLO, 18:48, 13/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    в proc sys А так логика верная ... весь текст скрыт [показать]
     
     
  • 5.69, EHLO, 23:58, 14/01/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Уточню, потому что вдруг кто-то читает Верная логика относится к соответствию... весь текст скрыт [показать]
     
  • 1.45, Аноним, 16:06, 13/01/2018 [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Странное дело в новости про NPM было цело состязание злословия и конкурс моделе... весь текст скрыт [показать]
     
     
  • 2.46, Борщдрайвен бигдата, 16:32, 13/01/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +2 +/
    Кому что болит, о том и говорит. Тут, как видно, болит очень немногим, увы.
     
  • 1.64, Аноним, 01:20, 14/01/2018 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    по ходу только переписывание glibc на rust спасёт ситуацию
     
     
  • 2.66, RobotsCantPoop, 13:21, 14/01/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • –2 +/
    Тотальное выпиливание C/CPP спасёт от 90% проблем с безопасностью и.
     
  • 2.71, Аноним, 18:41, 15/01/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Как оно спасёт Все имеющиеся там функции должны делать ровно то, что они делают... весь текст скрыт [показать] [показать ветку]
     
  • 2.72, Michael Shigorin, 14:29, 16/01/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Вы не понимаете, что значат буковки glibc ... весь текст скрыт [показать] [показать ветку]
     
  • 1.68, Аноним, 17:15, 14/01/2018 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    Еще одна уязвимость, связанная с suid? Ну, дело не новое
     

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


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