CIFSwitch: 19-летняя дыра в ядре Linux даёт root через эмуляцию CIFS-запроса
⚠️ CIFSwitch: 19-летняя дыра в ядре Linux даёт root через эмуляцию CIFS-запроса
Механика изящная и пугающая: подсистема CIFS ядра не проверяет, что запрос ключа cifs.spnego действительно инициирован ядерным CIFS-клиентом. Непривилегированный пользователь подсовывает поддельный запрос, и setuid-root утилита cifs.upcall послушно отрабатывает по нему аутентификацию Kerberos/SPNEGO. Дальше — переключение неймспейсов и подгрузка вредоносного NSS-модуля до сброса привилегий. Результат: локальное выполнение кода с правами root.
Обнаружил проблему Асим Вилади Оглу Манизада из SpaceX. Баг завезли 19 лет назад, в 2007, но выстрелил он только сейчас на ядрах 6.14+ с определёнными комбинациями cifs-utils. Подтверждены в уязвимой конфигурации по умолчанию Linux Mint 21.3/22.3, CentOS Stream 9, Rocky Linux 9, AlmaLinux 9, Kali Linux 2021.4–2026.1 и SLES 15 SP7. При этом Ubuntu 26.04, Fedora 40-44, CentOS Stream 10 и openSUSE Leap 16 не подвержены — спасают дефолтные политики SELinux/AppArmor.
Эксплуатация не универсальна: нужны доступные user namespaces, уязвимая версия cifs-utils с поддержкой переключения неймспейсов и отсутствие блокирующих правил в Mandatory Access Control. Manizada выложил PoC-эксплойт, а upstream-патч уже принят коммитом 3da1fdf — он добавляет проверку источника запроса ключа, подробнее по данным BleepingComputer.
Локальный root в 2026 году — это не только про многопользовательские системы и shared-хостинг. Контейнеры с включёнными user namespaces превращают любую микроуязвимость в контейнере в потенциальный выход на хост. CIFSwitch показывает: модули ядра, которые 19 лет никто не проверял на проверку границ, завтра могут стать точкой компрометации всей оркестрации контейнеров. Отключайте cifs.ko, если не монтируете SMB-шары прямо на хосте.
#CIFSwitch #LinuxKernel #privilegeEscalation #CIFS #LPE