В ядре Linux обнаружили еще одну уязвимость повышения привилегий, получившую название CIFSwitch. Проблема существует уже около 19 лет и позволяет локальному пользователю с минимальными правами получить полный контроль над системой.

Уязвимость связана с CIFS-клиентом (Common Internet File System) ядра Linux, который используется для работы с сетевыми SMB-шарами, а также пакетом cifs-utils. При подключении к сетевому ресурсу с аутентификацией Kerberos ядро передает часть работы вспомогательной утилите cifs.upcall, которая запускается с root-правами. Именно в этом механизме и кроется проблема.

Как объясняет инженер SpaceX Асим Вилади Оглу Манизада (Asim Viladi Oglu Manizada), нашедший проблему, CIFS-клиент ядра Linux не проверяет, действительно ли запрос на получение ключа cifs.spnego был создан самим клиентом CIFS. В результате непривилегированный пользователь получает возможность сформировать поддельный запрос и запустить штатную цепочку аутентификации от имени системы.

Затем в дело вступает cifs.upcall, который запускается с root-правами и доверяет данным, полученным из запроса. Подменив эти параметры, атакующий может вынудить cifs.upcall переключиться в контролируемое им пространство имен. После этого утилита выполняет NSS-запрос еще до отказа от повышенных привилегий и загружает подготовленный злоумышленником NSS-модуль. В результате атакующий получает возможность выполнить произвольный код от имени root.

По словам эксперта, баг появился в коде еще в 2007 году, однако его эксплуатация возможна не на всех системах и зависит от ряда условий: версии ядра, версии cifs-utils, поддержки user namespaces и настроек SELinux или AppArmor.

Уязвимыми в конфигурации по умолчанию исследователь назвал Linux Mint 21.3 и 22.3, CentOS Stream 9, Rocky Linux 9, AlmaLinux 9, Kali Linux версий 2021.4–2026.1, а также SLES 15 SP7. Кроме того, проблема может представлять угрозу для некоторых сборок Ubuntu, Debian, Pop!_OS, Oracle Linux, Amazon Linux и openSUSE, если в системе установлен пакет cifs-utils.

В ряде современных дистрибутивов эксплуатацию уязвимости блокируют политики безопасности. Среди них: Ubuntu 26.04, Fedora 40–44, CentOS Stream 10, Rocky Linux 10, AlmaLinux 10, SLES 16 и openSUSE Leap 16.

Также отмечается, что Amazon Linux 2 и старые версии Kali Linux вообще не подвержены проблеме, так как в их версиях cifs-utils отсутствует необходимая функциональность.

Для устранения уязвимости разработчики подготовили патч, который добавляет проверку происхождения запросов cifs.spnego. Исправление уже включено в основную ветку ядра Linux, однако конкретные версии с патчем могут различаться в зависимости от дистрибутива.

К своему отчету Манизада также приложил proof-of-concept-эксплоит. По его словам, код предназначен прежде всего для проверки эффективности патчей и работы защитных решений.

В качестве временных защитных мер специалист рекомендует отключить модуль CIFS, если он не используется, удалить cifs-utils при отсутствии необходимости и запретить создание user namespaces непривилегированными пользователями.

Следует отметить, что уязвимость CIFSwitch пополнила длинный список из обнаруженных за последнее время Linux-уязвимостей повышения привилегий, в который уже входят CopyFail, Dirty Frag, Fragnesia, DirtyDecrypt и PinTheft.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии