The OpenNET Project / Index page

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

Раскрыты подробности о root-уязвимости в ядре Linux, атакованной на Pwn2Own

30.03.2017 09:59

Опубликованы сведения о 0-day уязвимости в ядре Linux (CVE-2017-7184), которая была использована на соревновании Pwn2Own 2017 для демонстрации атаки на Ubuntu Linux, позволившей локальному пользователю выполнить код с правами root.

Уязвимость вызвана ошибкой во фреймворке преобразования сетевых пакетов XFRM, применяемом для реализации IPsec. В функции xfrm_replay_verify_len(), вызываемой из xfrm_new_ae(), не выполнялась проверка заданного пользователем параметра replay_window, записываемого в буфер состояний. Манипулируя содержимым, связанным с данным параметром, атакующий может организовать запись и чтение данных в областях памяти ядра за пределами выделенного буфера.

Несмотря на то, что эксплуатация была продемонстрирована в Ubuntu, проблема не специфична для данного дистрибутива и проявляется в любых других системах на базе ядра Linux. Как и в нескольких предыдущих root-уязвимостях в ядре, проблема может быть эксплуатирована только при включении пространств имён для идентификаторов пользователей (user namespaces). Например, пакеты с ядром для Ubuntu и Fedora уязвимы по умолчанию, а ядро Debian и RHEL/CentOS 7 может быть атаковано только после явной активации поддержки "user namespaces" (sysctl kernel.unprivileged_userns_clone=1). Атака также затруднена на старые системы с версиями ядра меньше 3.9 из-за отсутствия в них поддержки "user namespaces".

При проведении атаки "user namespaces" используется для получения обычным пользователем прав CAP_NET_ADMIN, необходимых для настройки параметров XFRM. Так как создаваемое через "user namespaces" изолированное окружение и основная система обслуживаются одним ядром Linux, то эксплуатация уязвимости в ядре из контейнера позволяет обойти ограничения контейнерной изоляции и получить привилегированный доступ к основной системе.

Для ядра Linux исправление доступно в виде патчей. Обновления пакетов пока выпущены только для Ubuntu, openSUSE, SUSE Linux Enterprise 12. Проблема остаётся неисправленной в Fedora, Debian и CentOS/RHEL 7. Уязвимость не затрагивает SLE 11, RHEL 5 и RHEL 6.

  1. Главная ссылка к новости (http://openwall.com/lists/oss-...)
  2. OpenNews: На соревновании Pwn2Own 2017 продемонстрированы взломы Ubuntu и Firefox
  3. OpenNews: Уязвимость в ядре Linux, позволяющая выйти из изолированного контейнера
  4. OpenNews: Уязвимость в LXC, позволяющая получить доступ к файлам вне контейнера
  5. OpenNews: Локальная root-уязвимость в ядре Linux (af_packet.c )
  6. OpenNews: Локальная root-уязвимость в ядре Linux (OverlayFS)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/46281-linux
Ключевые слова: linux, kernel, pwn2own
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (29) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, grsec (ok), 10:30, 30/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > user namespaces

    Уже в который раз.

     
     
  • 2.3, Нанобот (ok), 11:01, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    вообще-то баг не в user namespaces, а в ipsec
     
     
  • 3.4, анон (?), 11:06, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Позволяющий руту получить права рута. Отличненько.
     
     
  • 4.6, Аноним (-), 11:14, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Полагаю, что не обязательно руту, а CAP_NET_ADMIN.
     
  • 4.40, Аноним (-), 14:36, 01/08/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Позволяющая руту внутри _контейнера_, созданного непривилегированным пользователя, получить права рута на хосте.  
     
  • 3.5, Аноним (-), 11:11, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Если "фича" увеличивает область атаки на порядок, не является ли она сама уязвимостью?
     
     
  • 4.7, Аноним (-), 11:15, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • +26 +/
    > Если "фича" увеличивает область атаки на порядок, не является ли она сама уязвимостью?

    Предлагаю удалить из ядра Linux сетевой стек. Во избежание.

     
     
  • 5.12, Аноним (-), 11:54, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Удалять не стоит. А вот давать кому попало CAP_NET_ADMIN ­— глупо.

    Но жадным долбоё**м хочется "чтоб Jango и Wordpress ставились из коробки без VPS". И все вдруг забывают, для чего нужен root, и почему давать кому-попало "полный но ограниченный" доступ к системе — плохая идея.

     
     
  • 6.15, Аноним (-), 12:20, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А зачем джанге и вордпрессу нет_админ? Они там интерфейсы конфигурируют? Или iptables настраивают?
     
     
  • 7.16, Аноним (-), 12:35, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А нахрен вообще нужны user namespaces? Мне тоже непонятно.
     
     
  • 8.23, XXXasd (ok), 14:42, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    как минимум хотя бы для того чтобы любая пользовательская программа могла бы сн... текст свёрнут, показать
     
  • 8.27, Аноним (-), 16:58, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А вы хотели бы, чтобы и для контейнеров, и для основной системы было одно и то ж... текст свёрнут, показать
     
  • 4.19, Нанобот (ok), 13:08, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >Если "фича" увеличивает область атаки на порядок, не является ли она сама уязвимостью?

    нет, не является

     
  • 4.24, пох (?), 16:14, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Если "фича" увеличивает область атаки на порядок, не является ли она сама
    > уязвимостью?

    контейнеризация, которой слепо доверяют в качестве единственной меры безопасности (а именно в этом случае бывае CAP_чтонибудь без реального рута) - да, безусловно, является ;-)

     
     
  • 5.26, Michael Shigorin (ok), 16:38, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > контейнеризация, которой слепо доверяют в качестве единственной меры безопасности
    > (а именно в этом случае бывае CAP_чтонибудь без реального рута) - да, безусловно,
    > является ;-)

    [CODE]
    https://lists.altlinux.org/pipermail/sisyphus/2003-June/243147.html
                                                  ^^^^[/CODE]

     
  • 2.32, pavlinux (ok), 01:30, 31/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    В который раз? Оно только год,полтора как  из EXPEREMENTAL вылезло
     

  • 1.14, Аноним (-), 12:18, 30/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Атака также затруднена на старые системы с версиями ядра меньше 3.9 из-за отсутствия в них поддержки "user namespaces".

    У рута затруднений не возникнет. Но вот только зачем ему это...

     
     
  • 2.25, пох (?), 16:14, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > У рута затруднений не возникнет. Но вот только зачем ему это...

    из user namespace вылезать, разумеется. Пробив днищ...э, простите, контейнер.

     

  • 1.17, zfs (??), 13:02, 30/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > ядро Debian и RHEL/CentOS 7 может быть атаковано только после явной активации поддержки "user namespaces" (sysctl kernel.unprivileged_userns_clone=1).
    >...
    > Проблема остаётся неисправленной в Fedora, Debian и CentOS/RHEL 7

    # lsb_release -a
    LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
    Distributor ID: CentOS
    Description: CentOS Linux release 7.3.1611 (Core)
    Release: 7.3.1611
    Codename: Core
    # uname -a
    Linux gw 3.10.0-514.10.2.el7.x86_64 #1 SMP Fri Mar 3 00:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    # sysctl -a|grep userns

    Но
    # lxc-checkconfig |grep -i user
    User namespace: enabled

    Т.е. в системе напрочь отсутствует /proc/sys/kernel/unprivileged_userns_clone. Но LXC работает.
    Зафиксили уже или я что-то не так понял?

     
     
  • 2.20, Аноним (-), 13:10, 30/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    unprivileged_userns_clone позволяет любому пользователю (nobody и т.п.) создать себе namespace и сделать там себя "ограниченным" рутом, тем самым получив возможность использовать сплоит.

    Если unprivileged_userns_clone отсутствует, уязвимость могут использовать только процессы, которые и так уже имеют рут внутри namespace. То есть тупо только для побега из namespace.

     

  • 1.22, Michael Shigorin (ok), 14:21, 30/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А, так вот о чём пару дней тому намёкивали.
     
  • 1.28, zanswer CCNA RS (?), 17:29, 30/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уязвимость в функции реализующей IPSec Anti-replay механизм, я правильно понял?
     
  • 1.29, Анонимм (??), 18:15, 30/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Неплохая очередная причина вынести сетку в отдельное адресное пространство?
     
  • 1.31, pavlinux (ok), 01:28, 31/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Вот почему нужно собирать свои ядра, а не юзать дистрибные.
     
     
  • 2.34, Ivan_Pomidorov (?), 10:17, 31/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Отличный подход для Enterprise-а!
     
     
  • 3.37, пох (?), 18:52, 31/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Отличный подход для Enterprise-а!

    у энтерпрайса размером поболее подвальной лавчонки как раз обычно есть билдферма, лишние руки для ее обслуживания и, иногда, другие поводы пересобирать ведра.
    Только чем это поможет в данном случае (учитывая что ему запросто может быть нужен и ipsec, и namespaces) - загадка.

     
     
  • 4.39, Sem (??), 18:32, 03/04/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это даже не смешно. У вас представление об энтерпрайзе как сборище линукс-гиков?
     

  • 1.36, Аноним (-), 18:07, 31/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Топикстартер забыл упомянуть, что в Debian это некатит, потому, что
    >Unprivileged user namespaces are disabled in Debian, this only affects

    non-standard setups

     
     
  • 2.38, Аноним (-), 20:31, 31/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Топикстартер забыл упомянуть, что в Debian это некатит, потому, что

    Вы невнимательно читали новость, там про это написано. "Например, пакеты с ядром для Ubuntu и Fedora уязвимы по умолчанию, а ядро Debian и RHEL/CentOS 7 может быть атаковано только после явной активации поддержки "user namespaces" (sysctl kernel.unprivileged_userns_clone=1)"

     

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



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

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