Инструмент для Linux-гейминга оказался дырой с root-доступом

Инструмент для Linux-гейминга оказался дырой с root-доступом

Инструмент для Linux-гейминга оказался дырой с root-доступом

Инструмент InputPlumber, который используется для объединения устройств ввода в Linux-системах (в том числе в SteamOS), оказался небезопасным. Специалисты SUSE обнаружили в нём критические уязвимости, позволяющие локальному злоумышленнику перехватывать пользовательские сессии, подсовывать нажатия клавиш и даже читать файлы с правами root.

Речь идёт о двух уязвимостях — CVE-2025-66005 и CVE-2025-14338. Обе связаны с тем, что InputPlumber практически не проверял, кто именно обращается к его D-Bus-сервису. А это особенно неприятно, учитывая, что сервис работает с правами root.

Как выяснилось в ходе плановой проверки пакетов, ранние версии InputPlumber вообще не содержали никакой аутентификации клиентов.

«Первая версия InputPlumber, которую мы проверяли, полностью игнорировала аутентификацию, из-за чего мы сразу её забраковали», — пишут эксперты SUSE в отчёте SUSE.

Разработчики попытались исправиться и добавить Polkit, но сделали это так, что защита в реальности часто не работала. Поддержка Polkit была опциональна на этапе компиляции — и по умолчанию оказывалась отключённой. В результате бинарники нередко поставлялись вообще без какой-либо валидации.

Более того, даже при включённом Polkit обнаружилась состояние гонки (race condition) — классическая проблема, связанная с небезопасным использованием unix-process в Polkit (CVE-2025-14338).

По сути, любой пользователь системы получал доступ ко всем D-Bus-методам InputPlumber. А это открывало довольно опасные вектора атаки.

Например, через метод CreateTargetDevice можно было создать виртуальную клавиатуру и начать «нажимать» клавиши в чужой активной сессии — будь то рабочий стол или экран входа в систему.

Проще говоря, один пользователь мог незаметно управлять вводом другого и потенциально добиться выполнения произвольного кода от его имени.

Другой метод — CreateCompositeDevice — позволял использовать конфигурационные файлы для сторонних целей. С его помощью исследователи смогли определить существование привилегированных файлов и даже частично утёкшие данные, включая содержимое /root/.bash_history, которое «подсвечивалось» через сообщения об ошибках.

После раскрытия информации разработчики InputPlumber устранили проблемы. В версии v0.69.0 Polkit-аутентификация включена по умолчанию, а небезопасный механизм проверки заменён на корректный.

Обновления уже добрались и до SteamOS — компания выпустила новые образы SteamOS 3.7.20, в которых уязвимости закрыты.

Пользователям, у которых InputPlumber установлен в системе, настоятельно рекомендуется обновиться как можно скорее. Даже если вы используете его «только для игр», root-сервисы без нормальной аутентификации — это всегда плохая идея.

В Linux нашли 19-летнюю дыру: атакующий может добраться до root

В Linux обнаружили новую уязвимость повышения привилегий, получившую имя CIFSwitch. При удачном раскладе обычный локальный пользователь может обмануть механизм CIFS-аутентификации, подсовывать ядру фальшивые запросы и в итоге получить root. Проблема затрагивает системы с уязвимыми связками kernel CIFS и cifs-utils, в первую очередь версии 6.14 и выше.

CIFS нужен Linux для работы с сетевыми шарами: монтировать удалённые папки, читать и писать файлы по сети. Если такая шара использует Kerberos-аутентификацию, ядро Linux обращается к пользовательскому приложению, а cifs-utils выступает посредником.

По словам исследователя Асима Вилади Оглу Манизады, который нашёл и назвал CIFSwitch, ядро запрашивает ключ типа cifs.spnego, после чего стандартная связка keyutils/request-key запускает cifs.upcall от root, чтобы получить или собрать материалы Kerberos/SPNEGO.

Беда в том, что CIFS-подсистема ядра не проверяла, что такие cifs.spnego-запросы действительно пришли от CIFS-клиента ядра. В результате непривилегированный пользователь мог сгенерировать поддельный запрос и запустить штатный процесс аутентификации.

А дальше привилегированный cifs.upcall доверяет полям, которые считает созданными ядром, хотя на деле ими управляет атакующий. Через эти поля можно форсировать переключение namespace, спровоцировать NSS-запрос до сброса привилегий, подгрузить вредоносный NSS-модуль и получить выполнение кода от root.

Манизада отмечает, что баг появился ещё в 2007 году, то есть прожил в экосистеме около 19 лет. При этом эксплуатация не универсальна: нужны подходящая версия ядра, уязвимый cifs-utils, доступные пространства имен пользователей и политики SELinux/AppArmor, которые не ломают атаку на взлёте.

Среди уязвимых систем, в дефолтных конфигурациях эксперт называет:

  • Linux Mint 21.3 / 22.3;
  • CentOS Stream 9;
  • Rocky Linux 9;
  • AlmaLinux 9;
  • Kali Linux 2021.4–2026.1;
  • SLES 15 SP7.

Уязвимость уже закрыта патчем для ядра, он добавляет проверку происхождения запросов cifs.spnego. Однако конкретные версии ядра с патчем зависят от дистрибутива, так что администраторам лучше не гадать, а проверять бюллетени своих вендоров.

RSS: Новости на портале Anti-Malware.ru