Логотип

Новая уязвимость CIFSwitch в Linux позволяет получить root-доступ в нескольких дистрибутивах

Новая уязвимость CIFSwitch в Linux позволяет получить root-доступ в нескольких дистрибутивах

Недавно обнаруженная уязвимость в ядре Linux, получившая название CIFSwitch, может позволить злоумышленникам подделывать описания ключей аутентификации CIFS, использовать механизм запроса ключей в ядре и получать права суперпользователя.

Проблема затрагивает несколько дистрибутивов Linux, в которых используются уязвимые комбинации ядра CIFS и cifs-utils (версии 6.14 и выше, хотя некоторые более старые версии также подвержены этой проблеме).

CIFS (Common Internet File System) — это сетевой протокол, который обеспечивает доступ к файлам, папкам и устройствам в локальной сети. Linux использует его для монтирования, чтения и записи данных из удаленных систем.

Если сетевой ресурс CIFS использует для аутентификации протокол Kerberos, ядро Linux запрашивает у вспомогательной программы в пользовательском пространстве выполнение аутентификации. Посредником выступает набор инструментов пользовательского пространства cifs-utils.

«Ядро запрашивает ключ cifs.spnego-type, а обычная конфигурация keyutils/request-key запускает cifs.upcall от имени пользователя root для получения или создания материалов Kerberos/SPNEGO», — объясняет Асим Вилади Оглу Манидаза, инженер по безопасности SpaceX, который обнаружил и назвал уязвимость, связанную с повышением привилегий CIFSwitch в Linux.

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

В результате непривилегированный пользователь может создать поддельный запрос cifs.spnego и запустить обычный процесс аутентификации.

Запрос ключа cifs.spnego используется подсистемой связки ключей Linux для получения данных аутентификации, необходимых клиенту CIFS/SMB при подключении к сетевому ресурсу с использованием аутентификации Kerberos/SPNEGO.

Читать  Список основных команд безопасности Linux

Уязвимость позволяет вспомогательному процессу cifs.upcall, работающему с правами суперпользователя, доверять полям, контролируемым злоумышленником, которые, как предполагается, были сгенерированы ядром.

Злоумышленник может загрузить вредоносный модуль NSS и получить root-доступ, воспользовавшись этими полями для принудительного переключения пространства имен и последующего запуска поиска с помощью Name Service Switch (NSS) до отмены привилегий.

Манидаза опубликовал подробный технический отчет, в котором объясняет причину проблемы и то, как ее можно использовать для получения root-доступа.

 

Последствия, исправления и эксплойт

Манидаза говорит, что CIFSwitch был представлен 19 лет назад, в 2007 году. Он добавляет, что это «неуниверсальная» уязвимость и ее использование зависит от нескольких факторов, например от уязвимой версии ядра.

Среди других необходимых условий — уязвимая версия cifs-utils, наличие пользовательских пространств имён и политики SELinux/AppArmor, которые не блокируют атаку.

Manizada подтверждает, что уязвимыми являются следующие дистрибутивы с конфигурациями по умолчанию:

  • 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, openSUSE, Oracle Linux и Amazon Linux также могут быть уязвимы, если установлен пакет cifs-utils.

Однако существуют и такие версии, как Ubuntu 26.04, Fedora 40–44, CentOS Stream 10, Rocky Linux 10, SLES 16, AlmaLinux 10 и openSUSE Leap 16, в которых настройки SELinux/AppArmor по умолчанию предотвращают использование уязвимостей CIFSwitch.

Читать  5 лучших видеоплееров для Ubuntu

Кроме того, Amazon Linux 2 и Kali Linux 2019.4 и 2020.4 вообще не затронуты, поскольку в их версиях cifs-utils отсутствует функция переключения пространств имён.

Проблема с CIFSwitch была устранена с помощью патча для ядра, который добавляет проверку источников запросов cifs.spnego (исходный код commit 3da1fdf), но точные версии ядра, в которых установлен этот патч, зависят от дистрибутива.

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

Манидаза опубликовал экспериментальный образец (PoC) эксплойт для CIFSwitch, который может помочь организациям проверить эффективность установленных исправлений и мер по смягчению последствий.

CIFSwitch — последняя из серии уязвимостей, связанных с повышением привилегий в системах Linux, о которых стало известно недавно. Среди них — Copy Fail, Dirty Frag, Fragnesia, DirtyDecrypt и PinTheft.

Редактор: AndreyEx

Рейтинг: 5 (1 голос)
Если статья понравилась, то поделитесь ей в социальных сетях:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

14 − два =

Это может быть вам интересно


Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала