Вразливість CIFSwitch у Linux загрожує підвищенням привілеїв
Вразливість CIFSwitch у Linux: загроза підвищення привілеїв
Нещодавно виявлена вразливість підвищення привілеїв у Linux, відома як CIFSwitch, дозволяє непроханому локальному користувачу отримати root-доступ на певних системах через клієнт CIFS ядра Linux та користувацький хелпер cifs-utils. CIFS, також відомий як SMB, є протоколом мережевого обміну файлами, який часто використовується для доступу до файлових ресурсів Windows з Linux та інших платформ.
Опис вразливості CIFSwitch
Дослідник безпеки Asim Manizada виявив цю проблему, описуючи її як неуніверсальну вразливість для Linux. Експлуатація залежить від конкретних конфігурацій дистрибутиву. Доступно публічне підтвердження концепції експлуатації, що підвищує терміновість патчування та пом’якшення на уражених системах.
Вразливість CIFSwitch існує на інтерфейсі між клієнтом CIFS ядра та cifs.upcall, хелпером cifs-utils для автентифікації CIFS/SMB за допомогою Kerberos. Хоча CIFS здебільшого асоціюється з файловими ресурсами Windows, системи Linux також можуть монтувати SMB голови, використовуючи клієнт CIFS ядер.
Як виникає вразливість?
Вразливість виникає від способу, яким CIFS використовує ключі Linux. Зазвичай ядро запитує ключ cifs.spnego, і конфігурація запиту-ключа системи запускає cifs.upcall з правами root для обробки автентифікації Kerberos/SPNEGO.
За інформацією з розкриття, вразливість дозволяє користувацькому процесу без привілеїв запитувати підроблену характеристику ключа cifs.spnego. Ядро не змогло належно відхилити характеристики, що не походять з клієнта CIFS ядра, а стандартне правило запиту-ключа могло все ще запускати cifs.upcall з правами root.
В результаті, користувацький хелпер обробляв поля, контрольовані атакуючою стороною, включаючи pid, uid, creduid та upcall_target. Встановлюючи upcall_target=app, хелпер міг переключитися в простір імен, контрольований атакуючим.
Небезпека атаки та публічний репозиторій доказу концепції
Ця атака є особливо небезпечною, оскільки пошук облікових записів через NSS може відбуватися до остаточного зниження привілеїв. У цьому стані конфігурація NSS на рівні простору імен та модулі можуть бути завантажені хелпером root, що дозволяє коду, контрольованому атакуючим, виконуватися з правами root.
Публічний репозиторій доказу концепції пояснює, що експлуатація створює код хелпера, включаючи підроблену бібліотеку NSS та тригер, що змушує cifs.upcall ввійти в приватний простір імен та завантажити контрольований NSS модуль. Автор зазначає, що PoC призначений для захисників, підтримки та авторизованих команд безпеки для перевірки уразливості, патчів та пом’якшень.
Остаточне виправлення та обмеження
Виправлення на стороні ядра є публічним і заплановане для стабільного випуску. Воно відхиляє характеристики cifs.spnego, створені у користувацькому режимі, перевіряючи, що лише CIFS з його приватними обліковими даними spnego_cred може їх створювати. Призначення CVE було все ще в процесі під час публікації.
Добра новина полягає в тому, що CIFSwitch не впливає на всі системи Linux за замовчуванням. Дослідник перераховує кілька необхідних умов: вразливе ядро, уражена версія cifs-utils, стандартне правило запиту-ключа cifs.spnego, включені неприємні групи користувачів і простори імен, а також політики SELinux або AppArmor, які не блокують ланцюг атак.
Вразливі системи та рекомендації
Серед протестованих систем, які можуть бути уразливими, зазначено Linux Mint 21.3 і 22.3, CentOS Stream 9, Rocky Linux 9, Kali Linux 2021.4 до 2026.1 headless, AlmaLinux 9.7 і зображення Azure cloud, SLES 15 SP7, SLES SAP 15 SP7 та SLES SAP 16 з допустимим SELinux.
Інші системи вважаються вразливими лише за умови, що cifs-utils встановлено вручну. До цього групи належать Ubuntu 18.04 LTS, 20.04 LTS, 22.04 LTS, Debian 11 “Bullseye”, 12 “Bookworm” та 13 “Trixie”, Pop!_OS 22.04 та 24.04, openSUSE Leap 15.6, Rocky Linux 8 GenericCloud, Oracle Linux 8 та 9 KVM-образи та Amazon Linux 2023 з допустимим SELinux.
Деякі новіші системи блокуються стандартною політикою безпеки, навіть якщо cifs-utils присутній. Розкриття вказує на Fedora 40 до 44, Ubuntu 26.04 LTS, CentOS Stream 10, Rocky Linux 10, AlmaLinux 10.1, Oracle Linux 10, openSUSE Tumbleweed, openSUSE Leap 16.0 та SLES 16 як заблоковані політикою SELinux або AppArmor за замовчуванням.
Пом’якшення включають застосування оновлення ядра при наявності з дистрибуції, блокування модуля cifs, якщо монтування CIFS/SMB не є необхідним, видалення cifs-utils там, де це не потрібно, переозначення стандартного правила запиту-ключа cifs.spnego, якщо автентифікація Kerberos CIFS не потрібна, а також відключення неприємних груп користувачів.




