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

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 23 Nov 2018.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,373
    Likes Received:
    6,619
    Reputations:
    693
    В ядре 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.

     
  2. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,697
    Likes Received:
    3,139
    Reputations:
    236
    Дружно хвастаемся, и только здесь - какие мы умнички!
    Вот эта самая уязвимость - таки не уязвимость, если при компиляции используется патч against user_space:

    Code:
    blitz@inode ~/asp/core/linux-ck (git)-[master] % uname -a
    Linux inode 4.19.4-1-ck #1 SMP PREEMPT Fri Nov 23 20:12:27 CET 2018 x86_64 GNU/Linux
    
     
    Suicide likes this.