CIFSwitch: Linux LPE через подмену cifs.spnego ключей и namespace confusion — 1 июня 2026 г. в 09:04:28.569
CIFSwitch: Linux LPE через подмену cifs.spnego ключей и namespace confusion #Linux #LPE #CIFS Это не универсальная, но весьма эффективная техника локальной эскалации привилегий в Linux, возникающая на стыке ядра CIFS, keyring subsystem и userspace-хелпера cifs.upcall. Технические особенности Уязвимость затрагивает механизм обработки SPNEGO/Kerberos-аутентификации для CIFS/SMB-монтирований. Ядро использует request_key() для получения ключа cifs.spnego при необходимости Kerberos-аутентификации. Описание ключа (key description) формируется CIFS-кодом ядра и содержит чувствительные поля: pid, uid, creduid, upcall_target, информацию о namespace и другие параметры. Userspace-хелпер /usr/sbin/cifs.upcall, запускаемый от root через request-key, до исправления доверял содержимому description. Ядро до фикса не проверяло происхождение description для ключей типа cifs.spnego. Из-за этого непривилегированный пользователь мог самостоятельно вызвать request_key("cifs.spnego", fake_description, ...) и передать поддельное описание, имитирующее внутренний CIFS-запрос. Пайплайн атаки Непривилегированный атакующий формирует поддельное описание cifs.spnego, содержащее целевой pid и upcall_target=app. Вызывается request_key() с фейковым description, что приводит к запуску root-хелпера cifs.upcall в namespace-контексте атакующего процесса. До окончательного сброса привилегий cifs.upcall обращается к NSS/glibc-функциям, что позволяет через подмену nsswitch.conf и собственный libnss_*.so.2 внутри mount namespace добиться загрузки нужной библиотеки. В результате атакующий получает выполнение произвольного кода и полноценный root shell. Затронутые системы Под угрозой находятся Linux-системы с установленным cifs-utils, доступным модулем CIFS и включенными user namespaces. Практическая эксплуатация также зависит от конфигурации LSM, доступности unprivileged user namespaces и особенностей hardening в дистрибутиве. Но в первую очередь затронуты системы с cifs-utils 6.14+ или более старыми сборками с бэкпортом поддержки upcall_target. Источник @poxek | MAX | Блог | YT | RT | VK

