В популярной утилите Smb4K, которая используется в среде рабочего стола KDE для обнаружения и монтирования сетевых разделов Samba/CIFS, обнаружен комплекс критических уязвимостей, позволяющих локальному пользователю повысить свои привилегии до уровня root (суперпользователя) или вызвать отказ в обслуживании (Denial-of-Service, DoS). Проблемы, получившие идентификаторы CVE-2025-66002 и CVE-2025-66003, были устранены в выпуске Smb4K версии 4.0.5. Состояние обновлений для основных дистрибутивов Linux и FreeBSD можно отслеживать на страницах их пакетных репозиториев.
Smb4K использует привилегированный помощник (KAuth helper), работающий с правами root через D-Bus, для выполнения операций монтирования и отмонтирования. Именно в этом компоненте, как показало расследование команды безопасности SUSE, сохранились серьёзные недостатки проверки входных данных, а также были обнаружены состояния гонки (race condition) и ошибка в существующей логике верификации.
Уязвимости при монтировании (CVE-2025-66003)
Основная проблема заключалась в функции "Smb4KMountHelper::mount()". Во-первых, она не накладывала никаких ограничений на целевой каталог для монтирования. Следовательно, злоумышленник мог смонтировать сетевой ресурс поверх критически важных системных каталогов, например, "/bin". Если содержимое этого ресурса контролируется атакующим, то это позволяет подменить ключевые исполняемые файлы, такие как "/bin/bash", и впоследствии выполнить их с правами root.
Во-вторых, через параметр "mh_options" клиент мог передавать утилите "mount.cifs" произвольные аргументы командной строки. Например, используя опции "filemode=04777,uid=0", можно было выставить флаг setuid-root для всех файлов на смонтированном ресурсе. Таким образом, заранее подготовленный злонамеренный (malicious) исполняемый файл, размещённый на контролируемом атакующим SMB-сервере, после монтирования получал бы максимальные привилегии.
В-третьих, через параметр "mh_krb5ticket" можно было манипулировать переменной окружения "KRB5CCNAME", что потенциально позволяло получить доступ к файлам с учётными данными Kerberos других пользователей или даже вывести содержимое защищённых файлов, таких как "/etc/shadow", в системные логи.
Уязвимости при отмонтировании (CVE-2025-66002)
Аналогичные недостатки присутствовали и в функции "Smb4KMountHelper::unmount()". Критической оказалась ошибка в коде проверки пути отмонтирования. Хотя логика предусматривала сравнение запрошенного пути только с активными монтированиями типа CIFS/SMB, в блоке обработки ошибки отсутствовал оператор "return". Это делало всю проверку неэффективной, позволяя локальному пользователю отмонтировать практически любую файловую систему, включая корневую, что приводило к полному отказу системы.
Кроме того, через параметр "mh_options" можно было передавать произвольные аргументы утилите "umount", что открывало дополнительные векторы для атаки на отказ в обслуживании. Также исследователи обнаружили фундаментальную проблему в API "KMountPoint" библиотеки KIO, которая использовалась для получения списка текущих точек монтирования. Из-за состояния гонки и особенностей обработки FUSE-монтирований злоумышленник мог обойти даже исправленную проверку, подделав информацию о монтировании.
Исправления и рекомендации
После трёхмесячного процесса скоординированного раскрытия уязвимостей разработчик Smb4K Александр Райнхольдт выпустил исправление, включённое в версию 4.0.5. Ключевые изменения включают в себя:
- Ограничение монтирования сетевых ресурсов специальным каталогом "/run/smb4k", изолированным по идентификаторам пользователей (UID).
- Введение белого списка (whitelist) разрешённых опций для команд "mount.cifs" и "umount" с дополнительной проверкой их значений.
- Замену передачи пути к файлу с данными Kerberos на передачу уже открытого файлового дескриптора.
- Отказ от использования проблемного API "KMountPoint" в пользу "QStorageInfo" из Qt.
В качестве временных мер обхода уязвимостей (workaround) эксперты предлагали повысить требования аутентификации Polkit для действий помощника до уровня "auth_admin" или ограничить доступ к D-Bus-интерфейсу специальной группой пользователей. Однако эти меры противоречат основной цели утилиты - удобному монтированию для обычных пользователей.
Обнаруженные уязвимости в очередной раз подчёркивают сложность безопасной реализации привилегированных помощников в настольных средах. Пользователям KDE, применяющим Smb4K, настоятельно рекомендуется как можно скорее обновить пакет до версии 4.0.5 или выше.
Ссылки
- https://security.opensuse.org/2025/12/10/smb4k-major-issues-in-kauth-helper.html
- https://sourceforge.net/p/smb4k/blog/2025/12/smb4k-405-security-bug-fix-release
- https://invent.kde.org/network/smb4k/-/commit/0dea60194ab6eb8f6e34ca2e6cb0f97b90c46f1e
- https://bugzilla.suse.com/show_bug.cgi?id=1249004
- https://bugs.kde.org/show_bug.cgi?id=513176