CIFSwitch 是内核 CIFS 子系统中的一个漏洞。 Linux从而使您获得 root 权限

Раскрыты детали и опубликован эксплоит для уязвимости CIFSwitch (CVE пока не присвоен) в модуле ядра CIFS и инструментарии cifs-utils, позволяющей непривилегированному пользователю получить права root в системе. Исправление доступно только в виде патча, который опубликован 16 мая и 19 мая был принят в основную ветку ядра Linux (内核维护版本尚未发布)。

Уязвимость затрагивает код, обеспечивающий поддержку механизма cifs.spnego для выполнения аутентификации по протоколу SPNEGO (Simple and Protected GSSAPI Negotiation) при подключении к SMB-серверам. При использовании cifs.spnego для определения ключей из Kerberos/SPNEGO ядро вызывает обработчик cifs.upcall, предоставляемый пакетом cifs-utils и выполняемый в пользовательском пространстве с правами root.

Непривилегированный пользователь может инициировать вызов обработчика через отправку запроса, требующего получения ключа «cifs.spnego», с поддельным описанием «CIFS SPNEGO». В обработчике cifs.upcall не выполняются дополнительные проверки корректности параметров, переданных через ядро, среди прочего он воспринимает заслуживающими доверия значения полей pid, uid, creduid и
upcall_target. После активации обработчик cifs.upcall переключается в пространства имён пользовательского процесса, через который был отправлен запрос, и до сброса привилегий выполняет поиск в системной базе NSS (Name Service Switch).

Атакующий может запустить свой процесс в отдельном пространстве имён точек монтирования, что приведёт к выполнению обращения к NSS в его контексте. Для эксплуатации уязвимости достаточно внутри созданного атакующим окружения разместить собственный файл конфигурации /etc/nsswitch.conf и набор подставных библиотек libnss_*.so.2. Выполнение NSS-запроса обработчиком cifs.upcall приведёт к загрузке подставленных атакующим библиотек с правами root.

Для эксплуатации уязвимости в системе должно быть разрешено создание пространств имён идентификаторов пользователей (user namespace) или точек монтирования (mount namespace), а также требуется наличие в системе установленного пакета cifs-utils. Дистрибутивы, в которых возможна эксплуатация уязвимости в конфигурации по умолчанию:

  • Linux Mint Cinnamon 21.3/22.3
  • CentOS Stream 9 GNOME
  • Rocky Linux 9个工作站
  • 卡利 Linux
  • AlmaLinux 9.7个工作站
  • SUSE 15 SP7/SAP 15 SP7/SAP 16

Дистрибутивы, в которых для работы эксплоита требуется установка пакета cifs-utils:

  • Ubuntu 18.04/20.04/22.04 Desktop/Server
  • Pop!_OS 22.04 Intel/24.04 Generic
  • Ubuntu 24.04 Desktop minimal/full and Server
  • Debian 11/12/13 netinst standard and GNOME/KDE/standard/XFCE
  • CentOS Stream 9 Cinnamon/KDE/MATE/XFCE
  • Rocky Linux 9 KDE/Workstation-Lite
  • openSUSE Leap 15.6 GNOME/KDE
  • openSUSE Tumbleweed GNOME/KDE
  • Rocky Linux 8 GenericCloud
  • Oracle Linux 8/9 KVM
  • Amazon Linux 2023KVM

Дистрибутивы, в которых в конфигурации по умолчанию применяются настройки, блокирующие эксплуатацию уязвимости через SELinux или Apparmor, даже при наличии пакета cifs-utils:

  • Ubuntu 26.04 Desktop/Server
  • Fedora 40/41/42/43/44 Workstation/Server
  • CentOS Stream 10 GNOME/KDE
  • Rocky Linux 10个工作站
  • AlmaLinux 10.1个工作站
  • Oracle Linux 10KVM
  • openSUSE Tumbleweed GNOME/KDE
  • openSUSE Leap 16.0 OEM GNOME/KDE/Minimal-VM
  • SUSE Linux 16

В качестве обходного пути защиты можно заблокировать автоматическую загрузку модуля ядра cifs:

sh -c «printf ‘install cifs /bin/false\n’ > /etc/modprobe.d/cifs.conf; rmmod cifs 2>/dev/null; true»

Также можно запретить использование user namespace («sysctl -w kernel.unprivileged_userns_clone=0») и удалить или переопределить правило cifs.spnego в настройках cifs-utils:

cat >/etc/request-key.d/cifs.spnego.conf <‘EOF’
create cifs.spnego * * /usr/sbin/keyctl negate %k 30 %S
EOF

Тем временем, за 28 мая опубликовано 137 отчётов об уязвимостях в ядре Linux, а за 27 мая — 277 отчётов.

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster