הצטרף ל-Nostr
2026-05-29 09:34:32 CEST

OpenNews.opennet.ru: Основная лента (RSS Feed) on Nostr: CIFSwitch - уязвимость в CIFS-подсистеме ядра Linux, ...

CIFSwitch - уязвимость в CIFS-подсистеме ядра Linux, позволяющая получить права root

Раскрыты (https://www.openwall.com/lists/oss-security/2026/05/28/2) детали и опубликован эксплоит (https://github.com/manizada/CIFSwitch) для уязвимости CIFSwitch (https://heyitsas.im/posts/cifswitch/) (CVE пока не присвоен) в модуле ядра CIFS (https://docs.kernel.org/admin-guide/cifs/introduction.html) и инструментарии cifs-utils (http://wiki.samba.org/index.php/LinuxCIFS_utils), позволяющей непривилегированному пользователю получить права root в системе. Исправление доступно только в виде патча (https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=3da1fdf4efbc), который опубликован 16 мая и 19 мая был принят в основную ветку ядра Linux (корректирующие выпуски (https://kernel.org) ядра ещё недоступны).

Уязвимость затрагивает код, обеспечивающий поддержку механизма 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 (https://en.wikipedia.org/wiki/Name_Service_Switch) (Name Service Switch).

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

Для эксплуатации уязвимости в системе должно быть разрешено создание пространств имён идентификаторов пользователей (user namespace) или точек монтирования (mount namespace), а также требуется наличие в системе установленного пакета cifs-utils. Дистрибутивы в которых возможна (https://www.openwall.com/lists/oss-security/2026/05/28/2/1) эксплуатация уязвимости в конфигурации по умолчанию:

- Linux Mint Cinnamon 21.3/22.3

- CentOS Stream 9 GNOME

- Rocky Linux 9 Workstation

- Kali Linux

- AlmaLinux 9.7 Workstation

- 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 2023 KVM

Дистрибутивы, в которых в конфигурации по умолчанию применяются настройки, блокирующие эксплуатацию уязвимости через 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 Workstation

- AlmaLinux 10.1 Workstation

- Oracle Linux 10 KVM

- 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 мая опубликовано (https://lore.kernel.org/linux-cve-announce/) 137 отчётов об уязвимостях в ядре Linux, а за 27 мая - 277 отчётов.



Источник: http://www.opennet.me/opennews/art.shtml?num=65572 (http://www.opennet.me/opennews/art.shtml?num=65572)

https://www.opennet.me/opennews/art.shtml?num=65572