The OpenNET Project / Index page

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

Уязвимость в ядре Linux, позволяющая выйти из изолированного контейнера

25.06.2016 20:41

В опубликованных несколько часов назад выпусках ядра Linux 3.14.73, 4.4.14 и 4.6.3 устранена критическая уязвимость (CVE-2016-4997), позволяющая локальному пользователю повысить свои привилегии или выполнить код с правами ядра. Уязвимость пока не устранена в дистрибутивах, обновление в процессе подготовки: SUSE, Ubuntu, Debian, RHEL.

Уязвимость присутствует в подсистеме netfilter и связана с недоработкой в обработчике setsockopt IPT_SO_SET_REPLACE. Проблема проявляется только при использовании пространств имён для изоляции сети и идентификаторов пользователей (user namespaces и network namespaces, сборка ядра с CONFIG_USER_NS=y и CONFIG_NET_NS=y). Так как user namespaces по умолчанию отключены в большинстве дистрибутивов, уязвимость представляет опасность в основном для систем, использующих изолированные контейнеры.

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

Примечательно, что в списке изменений к новым выпускам факт исправления уязвимости никак не отмечен. Более того, исправления были предложены ещё для ветки 4.6-rc2 в апреле, без акцентирования внимания на наличие уязвимости, а начальный патч был подготовлен компанией Google, отправлен разработчикам ядра и использован в Chrome OS в начале марта.

  1. Главная ссылка к новости (http://seclists.org/oss-sec/20...)
  2. OpenNews: Уязвимость в ядре Linux, позволяющая поднять привилегии через eCryptfs
  3. OpenNews: Уязвимость в rt-ядре RHEL, позволяющая выполнить команду SysRq, отправив пакет ICMP
  4. OpenNews: Представлена отдельная ветка ядра Linux с устранением уязвимостей
  5. OpenNews: Уязвимость в ядре Linux, позволяющая запустить код при подключении USB-устройства злоумышленника
  6. OpenNews: В ядре Linux обнаружена уязвимость, позволяющая поднять привилегии в системе
Лицензия: CC-BY
Тип: Проблемы безопасности
Короткая ссылка: https://opennet.ru/44669-kernel
Ключевые слова: kernel, root
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (37) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 22:15, 25/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > т.е. пользователь из контейнера может обойти изоляцию, выполнив код на уровня ядра

    Настолько эпично... А Selinux изолирует подобное?

     
     
  • 2.6, Анжелика (?), 23:07, 25/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Любителей отключать selinux у нас столько, что даже если он и изолирует, это мало кому поможет ))
     
     
  • 3.10, grsec (ok), 02:19, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Безопасность != удобство.
     
  • 3.27, Аноним (-), 14:05, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Вы так свято верите, что NSA SELinux защищает вас? Подскажу, что ключевое слово в нём "NSA".
     
     
  • 4.31, exs (?), 17:38, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ключевое слово: _HUGE_ Performance impact
     
  • 4.39, Аноним (-), 00:09, 27/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вы так свято верите, что NSA SELinux защищает вас? Подскажу, что ключевое
    > слово в нём "NSA".

    Ты так говоришь, как будто NSA напихает бэкдоров в открытый код. А потом они сами не будут случайно бегать в мыле, когда всякие русские, китайские и исламские хакеры зайдут к ним в гости? Это было бы недальновидно, они тоньше работают. Всучили в SSL пробэкдоренный вариант эллиптических кривых и рады поуши. Тут правда некстати всякие Бернштейны подвернулись, а всякие непатриотичные гуглы даже в ssl библиотеки запихивают. Был бы гугл майкрософтом, а америка россией - кушали бы бы NIST P256 curve до скончания веков.

     
     
  • 5.43, . (?), 04:52, 27/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Святая простота! Гугел настолько плотно работает со спецслужбами ... что ты так даже с девушкой своей не сможешь :-)
     
     
  • 6.46, Аноним (-), 07:58, 27/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Святая простота! Гугел настолько плотно работает со спецслужбами ... что ты так
    > даже с девушкой своей не сможешь :-)

    Так они поди сливают по запросу с своих серверов, тем более что бизнес-аналитики у них столько что они тебе про тебя расскажут больше чем ты знаешь о себе сам. А вот неконтролируемо лазить по своей инфраструктуре ни одна уважающая себя компания или служба не позволит. Хотя-бы потому что в конце концов этот бэкдор кто-нибудь найдет и получится как с комодохакером и дигинотаром. Те правда были совсем глупые и использовали активную директорию, так что после взлома аккаунта админа им оставалось только сушить весла.

     
  • 2.48, linuxUser (?), 16:45, 27/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> т.е. пользователь из контейнера может обойти изоляцию, выполнив код на уровня ядра
    > Настолько эпично... А Selinux изолирует подобное?

    изолирует. так что только отключатели селинукса в опасности

     

  • 1.2, Онаним (?), 22:15, 25/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > позволяющая локальному пользователю

    А кто такой локальный пользователь в GNU/Linux? Есть какая-то принципиальная разница между пользователями, взаимодействующими с системой через подключенные к этому же компьютеру напрямую монитор и клавиатуру и пользователем, зашедшим через SSH?

     
     
  • 2.3, Led (ok), 22:30, 25/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Есть какая-то принципиальная разница между пользователями, взаимодействующими с системой через подключенные к этому же компьютеру напрямую монитор и клавиатуру и пользователем, зашедшим через SSH?

    Да

     
  • 2.4, Аноним (-), 22:31, 25/06/2016 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Локальным всегда считался пользователь, имеющий аккаунт в системе и доступ к выполнению произвольного кода под своим uid.
     
     
  • 3.36, Ilya Indigo (ok), 18:56, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Локальным всегда считался пользователь, имеющий аккаунт в системе и доступ к выполнению
    > произвольного кода под своим uid.

    А системный, по вашему, не имеет ни того и ни другого?
    Он точно также имеет учётную запись и также может выполнять код, разница лишь в том, что у него домашний каталог в /var/lib и оболочка не позволяющая ему авторизироваться, только получить полномочия от рута.

     
  • 2.8, Ilya Indigo (ok), 01:40, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У локального пользователя пользовательская оболочка /bin/bash и установлен пароль. У системного /bin/false и нет пороля, что не позволяет ему авторизироваться в системе. А если вы изменили в vipw пользовательскую оболочку на /bin/bash и задали ему пароль, то вы системного превратили в локального, с тем отличием, что у него uid ниже 1000 и домашний каталого не в /home, а скоррее всего в /var/lib но это роли никакой не играет.
    > пользователем, зашедшим через SSH...

    Я, конечно, не пробовал заходить системным пользователем без пароля по публичному ключу, но даже если это возможно, то залогинитmся по SSH, как и через что угодно с пользовательской оболочкой /bin/false не возможно.

     
     
  • 3.20, Аноним (-), 12:53, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А если /usr/bin/csh и /usr/sbin/nologin - это какие юзеры? Локальные, глобальные или VIP?
     
     
  • 4.23, Аноним (-), 13:13, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • +9 +/
    > А если /usr/bin/csh и /usr/sbin/nologin - это какие юзеры? Локальные, глобальные или
    > VIP?

    Поднятые некромантом или призванные демонологом.

     
     
  • 5.24, Аноним (-), 13:17, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Аххаххах! 5 баллов! :)
     
  • 5.53, Нониус (?), 07:43, 29/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >Поднятые некромантом или призванные демонологом.

    Считается ли некромантологией случай, когда у демона хомяк в /var/empty а шеллом /dev/null ?

     
     
  • 6.54, Ilya Indigo (ok), 07:35, 30/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >>Поднятые некромантом или призванные демонологом.
    > Считается ли некромантологией случай, когда у демона хомяк в /var/empty а шеллом
    > /dev/null ?

    Это не никромантия, а какое-то костылестроение, или поттерство.
    Системный хомяк должен быть у каждого системного пользователя в /var/lib/user_name или отведённом ему для этого месте в дистрибутиве. А для заглушки логина специально предназначено /bin/false, которое есть во всех дистрибутивах.

     
  • 4.35, Ilya Indigo (ok), 18:49, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А если /usr/bin/csh и /usr/sbin/nologin - это какие юзеры? Локальные, глобальные или
    > VIP?

    Первый локальный, второй системный, при условии, что приведённые вами оболочки установлены в системе. У меня nologin установлена в /sbin/nologin.

     
     
  • 5.40, Аноним (-), 00:12, 27/06/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А если шелло /usr/bin/dreamcatcher - это какой пользователь будет?
     
  • 2.12, Вареник (?), 03:49, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Локальный - это значит имеющий учетную запись в данной системе, могущий что-то запустить с правами юзера (нерута).

    Допустим запрос HTTP что-то выполняет на сервере, но произвольной команды такой запрос выполнить не может. А "локальный пользователь" - тот, кто может. Без разницы - с клавы или через SSH.

     
     
  • 3.13, _KUL (ok), 06:52, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    "Допустим запрос HTTP что-то выполняет на сервере, но произвольной команды такой запрос выполнить не может."
    Счастливая и спокойная была бы жизнь, ни каких эксплуатаций веб дыр от имени процесса обрабатывающего подобные запросы ...
     
     
  • 4.28, Аноним (-), 14:12, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну так это уже и есть удалённая эксплуатация уязвимости, т.е. без входа пользователя в свой хомяк и шелл.
     
  • 3.21, Аноним (-), 12:55, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Допустим запрос HTTP что-то выполняет на сервере, но произвольной команды такой запрос
    > выполнить не может. А "локальный пользователь" - тот, кто может. Без
    > разницы - с клавы или через SSH.

    А как запрос HTTP что-то выполняет на сервере, если у него юзера нет? А если в апаче/нгинхе/нужное вписать - дыра, позволяющая через HTTP выполнить произвольный код, запрос HTTP может выполнить команду или нет? Так имеет локального пользователя сервер HTTP или не имеет?

     

  • 1.5, chinarulezzz (ok), 23:01, 25/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >Уязвимость пока не устранена в дистрибутивах

    в Void с утра ядро 4.6.3

     
  • 1.7, Аноним (-), 23:58, 25/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    фигово, что не написано ничего про 2.6.32 с шестилетними бекпортами, а у ональных бизнес-партнёров требуется подписка или access denied
     
     
  • 2.9, Ilya Indigo (ok), 01:47, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > фигово, что не написано ничего про 2.6.32 с шестилетними бекпортами, а у
    > ональных бизнес-партнёров требуется подписка или access denied

    1 О чём вы думали, когда вашим бизнес партнёрам RHEL без подписки предлагали вместо CentOS?
    2 О чём думали ваши партнёры, когда соглашались на это?
    3 Все ядра 2-ой версии устарели и не поддерживаются.
    4 Red Hat всегда сам содержит все свои ядра, со своим блекджеком и патчами из актуальных ядер.

     

  • 1.14, Аноним (-), 09:45, 26/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Пойду собирать вещи на Debian GNU/HURD. Уж ядро Линукс слишком костыльно и опасно. Возможно, и бэкдоры для спецслужб стоят годами.
     
     
  • 2.22, Аноним (-), 12:56, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • +10 +/
    > Пойду собирать вещи на Debian GNU/HURD. Уж ядро Линукс слишком костыльно и
    > опасно. Возможно, и бэкдоры для спецслужб стоят годами.

    Лучше бы KDE под FreeBSD пропатчил, ей богу.

     
  • 2.26, Аноним (-), 13:23, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да уж. Для HURD сегодня уже даже некому ядро поддерживать, не то что бекдвери туда внедрять.


     
  • 2.29, Аноним (-), 14:19, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >Возможно, и бэкдоры для спецслужб стоят годами.

    Так про один такой бекдор упомянула Анжелика выше.

     

  • 1.15, Аноним (-), 09:57, 26/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    о каких контейнерах вообще идет речь? lxc? вообще любых?

    [сообщение отредактировано модератором]

     
     
  • 2.18, Аноним (-), 10:39, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > мля, о каких контейнерах вообще идет речь? lxc? вообще любых?

    Контейнеры в Linux только одни, отличаются лишь инструменты и мелкие детали (доп. применение apparmor, selinux, seccomp и т.п.). Основа везде cgroups и namespaces. user namespaces последнее время почти во всех инструментах управления контейнерами поддерживается.

     
     
  • 3.37, all_glory_to_the_hypnotoad (ok), 20:45, 26/06/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В linux никаких контейнеров нет, есть только набор отдельных ядерных фич (уже упомянутые namespaces, cgroups и многое другие вроде (v)tun/tap/eth...) из которых набирают фичи получая какие-то уровни изоляции. Некоторые конечные продукты в итоге называют контейнерами.
     

  • 1.49, Какаянахренразница (ok), 20:45, 27/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Демоны вылазят из контейнеров.
     
     
  • 2.50, Andrey Mitrofanov (?), 21:14, 27/06/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Демоны вылазят из контейнеров.

    :)
    Размуровались, демоны!

     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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