The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

29.05.2026 09:29 (MSK)

Раскрыты детали и опубликован эксплоит для уязвимости 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 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 мая опубликовано 137 отчётов об уязвимостях в ядре Linux, а за 27 мая - 277 отчётов.

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Fragnesia - уязвимость в ядре Linux, позволяющая получить root через изменение страничного кэша
  3. OpenNews: Copy Fail - уязвимость в ядре Linux, позволяющая получить root в большинстве дистрибутивов
  4. OpenNews: DirtyDecrypt - очередная уязвимость класса Copy Fail, предоставляющая права root в Linux
  5. OpenNews: PinTheft - шестая уязвимость класса Copy Fail, предоставляющая права root в Linux
  6. OpenNews: GRO Frag - седьмая уязвимость класса Copy Fail, предоставляющая права root в Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65572-cifs
Ключевые слова: cifs, kernel, linux
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (51) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:33, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > TLDR: A distro-specific Linux LPE found by harnessing LLMs into better multihop knowledge composition. Read on for affected distros, mitigations, and vulnerability details.

    Ну конечно же LLM нашли, а не люди.

     
  • 1.2, aname (ok), 10:33, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Хорошо, что это всё ремонтируют, а оно не пылится годами.
     
     
  • 2.7, Аноним (7), 11:03, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Тысячи глаз смотрют, бдют однако!
     
     
  • 3.22, Аноним (22), 13:07, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Но как только находят, ремонтируют.
     
  • 2.10, Аноним83 (?), 11:49, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Так оно никому не мешало, как и множество других ошибок которые ИИ находит.
    Всё что приводило к падениями и без того пофиксили.
     

  • 1.3, Аноним (3), 10:39, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Каждый день больше сотни уязвимостей находят нейронки. Так за лет десять можно добиться и приемлемого качества устаревших к тому моменту версий ядра.
     
  • 1.4, Sm0ke85 (ok), 10:47, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >Каждый день больше сотни уязвимостей находят нейронки. Так за лет десять можно добиться и приемлемого качества устаревших к тому моменту версий ядра.

    В свете еще и постквантовых историй, думаю, получится лагучее нечто, которое сравнимо будет по жору ресурсов с виндой, правда та скорее всего к тому времени вообще вся только на вебе будет (тупо магазин-на-диване) ))))

     
     
  • 2.18, Пыщь (?), 12:43, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Где-то в недрах этого форума один комментатор пытался возразить на низкую производительность солярки (может другой почтительной ОС, почему-то солярка в башке крутится) по сравнению с линухами и фряхами. Его упоминиание, "когда подтянете безопасность и изоляцию до сравнимого уровня - вот тогда и сравним производительность" (так мне припоминается, суть та же), было пропущено мимо кассы.
     
  • 2.21, проапоаоапроап (?), 13:02, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • –6 +/
    > лагучее нечто, которое сравнимо будет по жору ресурсов с виндой

    У меня Windows работает без видимых тормозов и глюков.

    А в интерфесе Гнома я замечаю легкое подтораживание при операциях.

    А се потому, что Windows создавали специалисты за зарплату, а не бесплатные GPL-рабы.

     
     
  • 3.32, Аноним83 (?), 14:38, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Так пока гном пилили бесплатный он и был вполне, а потом там создали фонд бездельников, которые сделали гтк3 с css и прочей фигнёй - вот тогда тормоза и начались в полный рост.

    В венде же оконное АПИ с 90х капитально не менялось, только расширялось по сути.
    Поэтому даже дотнеты и всякие мфк до того не могли надёжно затормозить гуй :)

     
  • 3.41, нах. (?), 15:10, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А в интерфесе Гнома я замечаю легкое подтораживание при операциях.
    > А се потому, что Windows создавали специалисты за зарплату, а не бесплатные

    бесплатные тебе athena widgets создали - оно выглядело конечно страшненько, по сравнению даже с 95й вендой, но и создано было на десять лет раньше.

    А гомотормоза - это как раз платные, на деньги ibm. И это ты еще их os/2 workplace shell не видал. Вот где тормоза всем тормозам тормоза были!

    (у microsoft в ее presentation manager все было страшненько но вполне быстренько по уровню того железа, понадобилась личная антимидасовская рука IBM чтоб все замедлить до полного безобразия)

     
  • 3.46, Аноним (46), 15:50, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А там хотя-бы пуск без тормозов открывается написанный на react native и полный рекламы?
     
  • 3.48, Sm0ke85 (ok), 16:20, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >А в интерфесе Гнома я замечаю легкое подтораживание при операциях.

    Смотри драйвера, это не в ОС'ях проблема...

    >А се потому, что Windows создавали специалисты за зарплату, а не бесплатные GPL-рабы.

    Пф, ерунда какая-то, ты ж вообще не понимаешь о чем рассуждаешь, винда - это мизерный процент рынка, особенно если сервера смотреть и остальное телеком оборудование, я уж не говорю про смартфоны и планшеты, и т.п....

     

  • 1.5, нах. (?), 10:50, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Для эксплуатации уязвимости в системе должно быть разрешено создание пространств имён идентификаторов пользователей (user namespace)

    опять двадцатьпять - мы дали пользователям рута но так чтоб они не стали рутами, но они стали рутами!

    тьфу, расходимся, не на что тут смотреть.

     
     
  • 2.19, Ы (?), 12:50, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Мне недавно рассказывали namespace это другое, это избавляет от suid и спасает мир.
     
     
  • 3.26, нах. (?), 14:14, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    ну вот мы тут уже двести раз эти грабли обсуждали, а оно снова вот.

     
  • 2.20, RM (ok), 12:51, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    за пространства имен не скажу, может и так.
    но я смотрел эти upcall относительно недавно, вангую там еще есть места где по тому же приципу можно порезвиться.
     
     
  • 3.49, нах. (?), 16:30, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > за пространства имен не скажу, может и так.
    > но я смотрел эти upcall относительно недавно, вангую там еще есть места
    > где по тому же приципу можно порезвиться.

    по тому же принципу резвиться можно сколько угодно - идея в том что ядро вызывает юзерленд хелпер, работающий, ну разумеется, от рута. Но и делающий ровно то что ему велел - рут. А у нас рут не рут, откуда и проблема. Т.е. она на самом деле не в ведре (хотя то и могло бы отфильтровать мусор на входе, ну вот нишмагло)

     

  • 1.6, Аноним (6), 10:52, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    CIFS — это устаревший диалект SMB 1.0. Сегодня ему на смену пришли более быстрые и безопасные версии SMB 2.0 и SMB 3.0. Из-за уязвимостей в безопасности первая версия CIFS/SMB 1.0 по умолчанию отключена в современных операционных системах. Для работы с современными файловыми серверами рекомендуется использовать протоколы SMB 2/3.
     
     
  • 2.9, Аноним (9), 11:24, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Разве SMB не использует CIFS по сей день?
     
     
  • 3.11, Аноним (6), 11:52, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В Windows нужно специально компонент CIFS ставить для доступа к серверам, работающим на SMB1.
     
     
  • 4.13, Аноним (6), 11:54, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А в 11-ке еще и вручную реестр править в 2-х местах (для версии Pro, для Home еще один компонент найти и установить).
     
  • 2.39, нах. (?), 15:00, 29/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.8, bOOster (ok), 11:04, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Самая бестолковая идея была тащить CIFS в ядро.
     
     
  • 2.12, Аноним (12), 11:53, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, не самая. В ядре еще есть HTTP сервер.
     
     
  • 3.14, bOOster (ok), 12:06, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет, не самая. В ядре еще есть HTTP сервер.

    HTTP протокол много проще чем SMB/CIFS

     
     
  • 4.23, Аноним (12), 13:14, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >много проще

    И это оправдывает запихивание в ядро прикладухи?

     
     
  • 5.29, bOOster (ok), 14:28, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >>много проще
    > И это оправдывает запихивание в ядро прикладухи?

    Если архитектура Линя убога и крива - что делать остается?
    Во FreeBSD, например, все решается посредством NetGraph. Не в ядре - но со всеми "ядерными" бонусами.

     
     
  • 6.54, нах. (?), 16:48, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Если архитектура Линя убога и крива - что делать остается?

    быстро глотать свой галоперидол
    А как дожуешь - можешь идти чинить прямую и бохатую фребеесде.
    А то я глянул бегло текущее состояние - там все еще в рассылочках и конечно же - дискордике _обсуждают_ как им к венде поганой подключиться. Потому что ой... а никак!

    Уже пять лет.

    Логично - нет подключения, нет проблем.

     
  • 4.24, Аноним83 (?), 13:57, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вы бы видели сколько там навалили заголовков и прочего в этот HTTP, а ещё всякие хитрые переносы строк, дублирующиеся заголовки которые не должны дублироватся, миме кодировки и прочая....

    Уж лучше SFTP/FTP если хочется именно файлы и простоты.

     
  • 3.25, Аноним83 (?), 13:58, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это с каких пор!?
    Там был простенький accept фильтр который не возвращал эвент о приёме соединения пока не поступят данные, а про http я не слышал.
     
     
  • 4.55, нах. (?), 16:50, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Это с каких пор!?
    > Там был простенький accept фильтр который не возвращал эвент о приёме соединения
    > пока не поступят данные, а про http я не слышал.

    accf_http там был с версии примерно 3.
    А ktls c 15й
    (как обычно, спонсоред кем-то вроде нетфигса и нахрен не нужен простым смертным)


     
  • 2.27, нах. (?), 14:15, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Самая бестолковая идея была тащить CIFS в ядро.

    действительно, где ж фс еще должна быть, не в ядре же ж! Точно не в ядре!

     
     
  • 3.28, bOOster (ok), 14:26, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Самая бестолковая идея была тащить CIFS в ядро.
    > действительно, где ж фс еще должна быть, не в ядре же ж!
    > Точно не в ядре!

    Конечно не в ядре. Во FreeBSD такие тупые костыли решаются посредством NetGraph. Не в ядре, но со всеми бонусами ядерного расположения.
    Ну а линь подчеркивает свое абсолютно убогое проектирование.  

     
     
  • 4.33, Аноним83 (?), 14:40, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Даже не знаю с чего начать.

    1. Во фре есть ядерный самба модуль, но заброшенный вроде.
    2. нетграф - тоже ядерные модули.

     
     
  • 5.38, нах. (?), 14:58, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Даже не знаю с чего начать.

    с вызова бригады психиатров, там их клиент.

    netgraph всего лишь набор фильтров. (и да, ядерных, но вообще-то это мы как раз могли бы прекрасненько в user space пережить. Т.е. тут ровно наоборот сделано - то что в нормальных ос обрабатывается в userspace - вынесено в ядро, потому что могли. А вот доступ к vfs у нас только из ядра.)

     
     
  • 6.45, Аноним83 (?), 15:32, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не совсем/всегда фильтров.
    Там есть модули которые реализует протоколы, тот pppoe кусками нетграфа собирается/разбирается, есть модули хаб/свитч и пр.
    Чисто фильтр - это пожалуй только бпф.

    В юзерспейс это раньше было только через диверт сокеты - сильно накладнее. Нетмап, дпдк и прочее появилось только лет через 10-15 после нетграфа, на уже сильно более мощном железе. Провадеры многие фрю не любили но выбора на чём собирать пппое сервер у них не было, линукс совсем не тянул со своим юзерспейсом. (Хотя извращенцы и трафик инспектор ставили...)

    Для файловой системы есть же FUSE.
    Для моих скромных потребностей sshfs более чем хватает в этом плане.

     
     
  • 7.52, нах. (?), 16:42, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Не совсем/всегда фильтров.
    > Там есть модули которые реализует протоколы, тот pppoe кусками нетграфа собирается/разбирается,

    так это и есть набор сетевых фильтров. pppoe в юзерспейсе только согласованием соединения занимается. А дальше поток сливается в собранную им нетграфовую цепочку.

    > линукс совсем не тянул со своим юзерспейсом. (Хотя извращенцы и трафик

    там как раз in-kernel pppd. Проблема в том что им невозможно было управлять - вот этих-то фильтров ему и не хватало.  Он-то был рассчитан на /dev/ttyS* и serial line из которой можно напрямую читать поток как из файла. А тут нет никакого файла, а есть raw socket.
    Поэтому rp-pppoe аж ДВАЖДЫ таскал весь поток туда-сюда, чтоб ему через pty просунуть то что он умеет обрабатывать. Скорость и эффективность подхода пробивали отнюдь не потолок.

    > Для файловой системы есть же FUSE.

    fuse это всего лишь экспорт кернельного vfs В юзерспейс. Сама она - в ядре, где vfs и живет.
    Ничего хорошего от этого как ты понимаешь не возникает. (греку с цыганом удалось, но они работали в паре и пооптимизировали конкретный случай и тот не на фре, там все плохо)

    Осмысленно для какого-нибудь sshfs который все равно целиком в юзерспейсе работает, а на чудеса производительности от него никто и не закладывался.

     
  • 4.35, нах. (?), 14:43, 29/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.15, Archer73 (ok), 12:10, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А как разместить собственный файл конфигурации /etc/nsswitch.conf не имея прав администратора?
     
     
  • 2.16, Аноним (16), 12:16, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В private namespace у тебя вся фс, начиная с / может принадлежать пользователю (и быть пустой, без файлов). Просто создаешь нужный файл и все.
     

  • 1.30, Аноним (30), 14:30, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я правильно понимаю, что ОС Альт/Роса/РедОС/Астра неуязвимы? ФСТЭК сертифицированные дистрибутивы отечественных Linux защищены?
     
     
  • 2.36, YetAnotherOnanym (ok), 14:45, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Проверь и отпишись, что ты как маленький!
     
     
  • 3.40, нах. (?), 15:02, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Проверь и отпишись, что ты как маленький!

    что это ты не по уставу обращаешься?

    "ПРОВЕРИТЬ И ДОЛОЖИТЬ! БЕГОМ! УВА, УВА, УВА!"

     
  • 2.50, Аноним (50), 16:30, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    За РедОС и Астру не скажу, но в Альте unprivileged_userns_clone отключено по умолчанию.
     
     
  • 3.56, нах. (?), 16:52, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > За РедОС и Астру не скажу, но в Альте unprivileged_userns_clone отключено по
    > умолчанию.

    так точно! Разрешите идти докладывать товарищ-подполковнику?!


     

  • 1.34, жявамэн (ok), 14:41, 29/05/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

  • 1.43, Аноним (43), 15:26, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    С этими ии агентами я не успеваю ядро обновлять
     
     
  • 2.47, Аноним (47), 16:10, 29/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А ты и ядро замени на ии агентов, оно всё равно к этому идёт.
     

  • 1.44, Bob (??), 15:27, 29/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    кучно пошли
     
  • 1.51, Markx (?), 16:39, 29/05/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру