The OpenNET Project / Index page

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

Уязвимость в ядре Linux, позволяющая обойти ограничения user namespace

22.11.2018 18:58

В ядре Linux в коде трансляции uid/gid из пространства имён идентификаторов пользователей (user namespace) в основной набор идентификаторов выявлена уязвимость (CVE-2018-18955), позволяющая непривилегированному пользователю, имеющему полномочия администратора в изолированном контейнере (CAP_SYS_ADMIN), обойти ограничения безопасности и получить доступ к ресурсам вне текущего пространства имён идентификаторов. Например, при использовании общей файловой системы в контейнере и хост-окружении можно через прямое обращение к i-node прочитать содержимое файла /etc/shadow в основном окружении.

Уязвимость вызвана ошибкой в ядре 4.15, внесённой в октябре прошлого года. Проблема исправлена в выпусках 4.18.19, 4.19.2 и 4.20-rc2. Уязвимость присутствует в функции map_write(), определённой в файле kernel/user_namespace.c, и вызвана некорректной обработкой вложенных пространств идентификаторов пользователей, в которых используется более 5 диапазонов UID или GID. В данных условиях трансляция идентификаторов uid/gid из пространства имён в ядро (forward map) работает корректно, но не выполняется при обратном преобразовании (reverse map, из ядра в пространство идентификаторов).

Возникает ситуация, когда идентификатор пользователя 0 (root) корректно сопоставляется с идентификатором 0 в ядре при прямом преобразовании, но не отражает реальной ситуации при обратном преобразовании, которое используется в проверках inode_owner_or_capable() и privileged_wrt_inode_uidgid(). Таким образом при обращении к inode ядро считает, что пользователь имеет должные полномочия, несмотря на то, что используется id 0 не из основного набора идентификаторов пользователей, а из отдельного пространства имён.

Уязвимость присутствует в дистрибутивах, использующих ядро 4.15 и более новые выпуски, например, в Ubuntu 18.04/18.10, Arch Linux и FedorаArch и Fedora уже доступно ядро 4.19.2 с исправлением). RHEL и SUSE не подвержены проблеме. В Debian и Red Hat Enterprise Linux поддержка "user namespace" по умолчанию не активирована, но она включена в Ubuntu и Fedora.

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Уязвимость в Glibc, позволяющая поднять привилегии в системе
  3. OpenNews: Пятая уязвимость в реализации сокетов AF_PACKET ядра Linux
  4. OpenNews: Локальная root-уязвимость в ядре Linux
  5. OpenNews: Локальная root-уязвимость в реализации сокетов AF_PACKET в ядре Linux
  6. OpenNews: Раскрыты подробности о root-уязвимости в ядре Linux, атакованной на Pwn2Own
Автор новости: Мегазаычы
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/49649-namespace
Ключевые слова: namespace, kernel, linux
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (57) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Qwerty (??), 21:04, 22/11/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Уязвимость вызвана ошибкой в ядре 4.15

    Но виноваты всё равно контейнеры!

     
     
  • 2.2, Аноним (2), 21:14, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • +12 +/
    Но виноваты все равно корпорации и автор npm leftpad лично!
     
     
  • 3.4, .. (?), 21:24, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Поттеринга забыл же!
     
     
  • 4.9, Анонн (?), 21:45, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • +9 +/
    > Поттеринга забыл же!

    Что, передумали фиксить и вместо этого объявили нот-а-багом?

    Хотя то, что фанаты с незамутненной радостью и злорадством вынуждены пояснять "а вот тут Великий не виноват!", говорит уже о многом ))

     
  • 3.13, Аноним (13), 22:33, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • –5 +/
    >Но виноваты все равно корпорации

    А не так что ли? Классических, понятных ugo rwx с нашлёпкой в виде chroot хватает всем смертным, современные фортеля с правами, контейнерами, изоляциями - это всё поветрия со стороны копрораций.

     
     
  • 4.14, Анонн (?), 22:41, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А не так что ли? Классических, понятных ugo rwx с нашлёпкой в
    > виде chroot хватает всем смертным, современные фортеля с правами, контейнерами, изоляциями - это всё поветрия со стороны копрораций.

    Очевидно же, что это все происки Заклятых Врагов:



    man jail
    HISTORY
         The jail utility appeared in FreeBSD 4.0. (март 2000г)



     
     
  • 5.19, Sw00p aka Jerom (?), 23:25, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • –5 +/
    джейлы бсдешные тоже не торт, там тоже маппить нужно юиды/гиды, чтобы в топе(в системе) норм видеть а не неизвестные.
     
     
  • 6.58, bOOster (ok), 15:24, 24/11/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    uid/gid возьми из LDAP и будет тебе счастье где только угодно.
     
     
  • 7.59, Sw00p aka Jerom (?), 16:03, 24/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > uid/gid возьми из LDAP и будет тебе счастье где только угодно.

    ради одного узера в джейле мне лдап наворачивать? легче в самой системе такого же юзера создать

     
  • 5.47, нах (?), 13:52, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    одна проблема - jail тоже требует рутовых прав - и не просто так это делает. А иначе будет:
    jail: jail_set: Operation not permitted


    никакого тебе userns...

    Потому что jail - он как раз об изоляции и безопасности, а не о том как уйти от dependency hell путем наворачивания слоев поверх слоев поверх слоев.

     
     
  • 6.69, Sw00p aka Jerom (?), 22:51, 04/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > одна проблема - jail тоже требует рутовых прав - и не просто
    > так это делает. А иначе будет:
    > jail: jail_set: Operation not permitted
    > никакого тебе userns...
    > Потому что jail - он как раз об изоляции и безопасности, а
    > не о том как уйти от dependency hell путем наворачивания слоев
    > поверх слоев поверх слоев.

    бесит за столько лет нормальный процесс монтирования и отмонтирования не придумали, крешится джейл процесс, а маунты висят, и хрен запустишь если не отмонтируешь.

     
  • 4.17, КГБ СССР (?), 23:04, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Корпораций лишь в том смысле, что это попытка пресловутой экономии на персонале, то есть использовании копченных принесиподаев заместо квалифицированных админов и юзеров. Защита от дурака для дурака, если кратко. Но из этого ничего заведомо не может получиться хорошего, потому что это нарушение принципов юникса (та самая избирательность в выборе друзей, ага). А все такие нарушения ломают его целостность и приводят к предсказуемым последствиям. Не может любая домохозяйка управлять сложной системой, требующей реальных знаний и глубокого понимания. Не получается чуда.

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

    Единственное, что можно сказать в качестве резюме по таким случаям — что скупой платит дважды. Нельзя экономить на мозгах. Нельзя нанимать дураков на сложные задачи.

     
     
  • 5.21, Аноним (13), 23:50, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >Но корпорации корпорациями, а эти поветрия находят большой энтузиазм в рядах кибервасянов

    Да, пожалуй, это пострашней будет.

     
  • 4.64, Аноним (-), 09:32, 03/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > виде chroot хватает всем смертным,

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

     
  • 3.22, псевдонимус (?), 23:57, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    До чего же дырявы линукс-контейнеры.
     
     
  • 4.27, Онаним (?), 00:57, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    До чего же дырявы контейнеры.
    Fixed.
     
     
  • 5.61, Аноним (-), 09:19, 03/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Так чтоб оно дырявым не было - ядро изнавально должно было писаться с учетом таких хотелок. Но кто ж на момент начала написания реально существующих ОС о таком задумывался? А когда это потом сбоку на проволоку и скотч примотано...
     
  • 2.3, Аноним (3), 21:18, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > >Уязвимость вызвана ошибкой в ядре 4.15
    > Но виноваты всё равно контейнеры!

    Да, эти все "спейсыс" - для контейнеров.

     
  • 2.12, Anon9999 (?), 22:12, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Но виновато всеравно сообщество, которое написало GNU/Linux!
     
  • 2.16, Аноним (16), 23:02, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Прочитал "мейнтейнеры", в принципе, разницы нет.
     
  • 2.23, псевдонимус (?), 00:00, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Естественно. В линуксе они тот ещё шлак с точки зрения безопасности.
     
     
  • 3.26, Michael Shigorin (ok), 00:54, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Естественно. В линуксе они тот ещё шлак с точки зрения безопасности.

    Контейнеры-то?  Ну сломайте мне ovz.

     
     
  • 4.28, Led (ok), 01:49, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ну сломайте мне ovz >= 4.15

    /fixed

     
  • 4.33, Аноним (33), 05:52, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Мишень - OpenVZ это такое дикое глюкало... его ломать не надо - оно просто падает при определенных нагрузках.
    Тем более официально 'stable'  там как г. мамонта - 2.6.32..
     
     
  • 5.39, agent_007 (ok), 10:27, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    OVZ это единственные лiнупс контейнеры, которые работают, несмотря на ряд недостатков.
     
     
  • 6.43, нах (?), 13:42, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    но поскольку совместимость с современным софтом у ядра 2.6 примерно никакая - больше пользы от выноса в этом случае линукса на помойку и установки freebsd. Там возможности внутриджейлового рута хоть как-то ограничены.

     
     
  • 7.48, Michael Shigorin (ok), 13:55, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > но поскольку совместимость с современным софтом у ядра 2.6

    В контейнере оно покажется 3.2, помнится.

     
     
  • 8.49, Аноним (49), 14:46, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    что установишь в текстовой строчке - так и будет хоть 99 01... текст свёрнут, показать
     
  • 8.65, Аноним (-), 09:33, 03/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Я вам на любом ядре покажу любую цифирь И чего Как максимум это позволит прогр... текст свёрнут, показать
     
  • 7.53, agent_007 (ok), 16:22, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > поскольку совместимость с современным софтом у ядра 2.6 примерно никакая

    И с каким "современным софтом" несовместим 2.6.32 из RHEL6 ?


     
  • 7.57, Аноним (57), 18:23, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Софт не обращается к ядру напрямую и не видит ядра, софт работает с libc
     
  • 4.36, псевдонимус (?), 07:47, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Так опенвз постоянно критикуют поклонники продукции рэдхэт, говорят что они не работают с уродливым костылём под названием селинукс. И вообще патчить ядро дозволено только корпорации в красном головном уборе типа "шляпа".
     
     
  • 5.44, нах (?), 13:42, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    просто у той корпорации это получается, а виртуозы застряли в ядре 2.6

     
     
  • 6.50, Аноним (49), 14:51, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    у vz когда-то тоже получалось, но привычка к закрытию кода, и тот факт что разбежались разработчики (посмотрев кто работал над 2.6.32 и сейчас).
     
     
  • 7.52, Michael Shigorin (ok), 15:28, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > и тот факт что разбежались разработчики

    А это болотников "благодарить" надо -- Монахову мозги проэксплойтили, в итоге потеряли мотор проекта в виде Кирилла.

     
     
  • 8.63, Аноним (-), 09:30, 03/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да кто им мозги эксплойтил с их менеджментом Такая уверенность фирмы в том что ... текст свёрнут, показать
     
  • 4.62, Аноним (-), 09:24, 03/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Контейнеры-то?  Ну сломайте мне ovz.

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

     

  • 1.5, Синяя птица (?), 21:28, 22/11/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Ну вот опять
     
     
  • 2.20, Онвонин Николаевич (?), 23:49, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Никогда такого не было.
     

  • 1.6, ананим.orig (?), 21:30, 22/11/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Например, при использовании общей файловой системы

    А посему общими должны быть только файло-помойки.

    Да! Вот почему в proxmox обновление ядра прилетело.

     
  • 1.7, Аноним (7), 21:33, 22/11/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    вот эти ребята:
    Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
    CC: Serge Hallyn <serge@hallyn.com>
    CC: Eric Biederman <ebiederm@xmission.com>
    Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
     
     
  • 2.34, Акакжев (?), 06:39, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > вот эти ребята:
    > Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>

    Примечательно, что LTS ветка ядра -- 4.14, а в Ubuntu используют 4.15

     

  • 1.8, КГБ СССР (?), 21:39, 22/11/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > RHEL и SUSE не подвержены проблеме. В Debian и Red Hat Enterprise Linux поддержка "user namespace" по умолчанию не активирована, но она включена в Ubuntu и Fedora.

    Так-то! Выбирай сердцем, голосуй кошельком. :)

    Ещё у кого-то есть вопросы про блидинг едж? :)

     
     
  • 2.11, Аноним (-), 21:57, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А ничего что в дистрах с отрубленными user namespaces, те же вещи делаются только с правами рута?
     
     
  • 3.15, КГБ СССР (?), 22:54, 22/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А ничего что в дистрах с отрубленными user namespaces, те же вещи
    > делаются только с правами рута?

    Какие конкретно вещи?

    В нормальных юниксах ничего не должно делаться от рута юзером или юзером с повышенными правами. Рута выдают исключительно квалифицированному админу. Обычным юзерам выдали по домашнему каталогу для жизни, и больше ничего в системе им не принадлежит. Это основа основ безопасности любого юникса.

    А если вы хотите, чтоб как в Windows 98 было, где всем можно всё, то добро пожаловать в опасный и заманчивый мир увлекательных приключений с регулярной переустановкой всего с нуля.

     
     
  • 4.32, Ordu (ok), 04:11, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > В нормальных юниксах ничего не должно делаться от рута юзером или юзером с повышенными правами. Рута выдают исключительно квалифицированному админу.

    Это всё влажные мечты. Да было бы круто, если бы к каждому пользователю убунты приставили бы по квалифицированному админу, с поиском работы у васянов проблем бы не было. Но это всё влажные мечты, потому что при таких требованиях к unix'у, этот ваш unix никому не будет нужен. То есть ты всё равно останешься невостребованным на рынке труда.

     
     
  • 5.41, OS2 (?), 13:21, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    То есть, то что кибервасяны-сантехники, переодически ходят и починяют пользовательские Windows/MacOS это как бы нормально?
    С общепринятой точки зрения, наверное нет особой разницы, хотя если сбылась бы мечта Стива Джобса, то PC не нужен. Все в гаджете под названием ipad/iphone, который вам не принадлежит.
     
     
  • 6.45, нах (?), 13:44, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    да мы и линуксы ТАК починить могем - reboot/install/next/next/format - yes!/ok!

    и, в принципе-то, любой васян справится. (какой еще архив любимого котика - ты чего, как лох, его не в облаке хранил?)

     
     
  • 7.66, Аноним (66), 09:36, 03/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > да мы и линуксы ТАК починить могем - reboot/install/next/next/format - yes!/ok!

    Да нет там никакого next и формата как такового. Придет автоматическая система деплоймента, вкатит данные на диск и уберется восвояси. Так что никто ничего не кликает даже. Когда машин много, клацать next на каждой из них - много чести.

     
  • 2.31, annual slayer (?), 03:49, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Ещё у кого-то есть вопросы про блидинг едж? :)

    (в Arch и Fedora уже доступно ядро 4.19.2 с исправлением)

     
     
  • 3.46, нах (?), 13:45, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а что именно в нем нового поломали - владельцы узнают немного позже.

     

  • 1.10, Аноним (10), 21:49, 22/11/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Если ваши контейнеры которые имеют доступ в сеть имеют флаг cap_sys_admin это уже проблема в голове.
     
     
  • 2.24, mimocrocodile (?), 00:07, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Весь смысл контейнеров, чтобы иметь изолированный root
     
     
  • 3.25, Аноним (10), 00:37, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    cap_sys_admin это уже деизоляция.
     
     
  • 4.67, Аноним (66), 09:37, 03/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > cap_sys_admin это уже деизоляция.

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

     

  • 1.18, Michael Shigorin (ok), 23:11, 22/11/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > userns

    Следующий!

     
     
  • 2.42, нах (?), 13:39, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а пока ты просто даешь рута основной системы всем, кому нужно банально запустить что-то в контейнере?

    Ну продолжайте, продолжайте...

     
     
  • 3.51, Аноним (49), 14:52, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    sudo с привязкой к паре юзер - прикладуха ?
     
     
  • 4.60, angra (ok), 05:31, 26/11/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это типа лечения подорожником. Применять можно только по причине невежества.
    Приложения в своей работе обычно читают и пишут файлы. Путем всяких хитрых манипуляций их можно заставить читать и писать совсем не те файлы, на которые рассчитывал дающий sudo.
     
  • 4.68, Аноним (66), 09:38, 03/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > sudo с привязкой к паре юзер - прикладуха ?

    И в результате этот юзер потом сможет сисколами по всей системе шариться, в основном namespace. Делая многовато лишнего.

     
  • 3.56, Аноним (56), 17:19, 23/11/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Глупый живящий в собственном коде.
     

  • 1.35, Пользователь (?), 06:41, 23/11/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Только разработчики ядра добавляют бэкдор и тут же их планы раскрывают..
     
  • 1.40, Аноним (40), 10:35, 23/11/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ну тут одно из двух, либо ошибка в ядре, либо манифест приличного поведения института благородных девиц.
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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