Критическая уязвимость в Linux: Эксплойт для повышения привилегий через udisksd и libblockdev угрожает безопасности дистрибутивов Fedora и SUSE

vulnerability

В экосистеме Linux выявлена опасная уязвимость локального повышения привилегий (LPE), затронувшая ключевые дистрибутивы, включая Fedora и SUSE. Проблема, получившая идентификатор CVE-2025-6019, кроется во взаимодействии системного демона udisksd и библиотеки libblockdev, ответственной за операции с блочными устройствами. Уже опубликован рабочий эксплойт (PoC), демонстрирующий, как злоумышленник с минимальными правами может получить полный контроль над системой. Уязвимость затрагивает среды, где пользователи входят в группу allow_active, что характерно для многих конфигураций по умолчанию. Эксперты по безопасности предупреждают: промедление с обновлениями создает риски полного компрометирования инфраструктуры.

Техническая суть уязвимости заключается в нарушении границ доверия при обработке D-Bus запросов. Демон udisksd, работающий с привилегиями root, некорректно делегирует операции libblockdev без должной проверки контекста вызова. Библиотека ошибочно трактует членство в группе allow_active как достаточное основание для выполнения критических действий - монтирования разделов, форматирования дисков или разблокировки зашифрованных устройств. Это позволяет неавторизованному пользователю инициировать команды, которые должны требовать прав суперпользователя. Уязвимость особенно опасна в средах с ослабленными настройками Polkit, где проверки ограничиваются групповой принадлежностью без верификации UID.

Лабораторные тесты подтвердили: в Docker-контейнере Fedora 40 с базовой конфигурацией пользователь testuser, входящий в allow_active, успешно выполнял монтирование устройств через udisksctl. Эксплуатация начинается с простого Python-скрипта, вызывающего штатные инструменты udisks2. При успешной атаке злоумышленник не только получает доступ к защищенным разделам, но и может комбинировать уязвимость с другими слабостями для закрепления в системе - установки бэкдоров, кражи данных или перемещения по сети. Исследователи отмечают, что проблема носит системный характер: аналогичные ошибки могут присутствовать в других функциях libblockdev, включая работу с LVM, RAID-массивами и шифрованными томами.

Анализ исходного кода выявил корневую причину: в устаревших версиях udisks2 проверка ограничивалась вызовом caller_in_allow_active_group(), игнорируя идентификатор пользователя. Патч добавил обязательное условие caller_uid == 0, исключающее неавторизованное выполнение. Дистрибутивы уже интегрируют исправления, усиливающие политики Polkit. Например, новые правила явно требуют совпадения UID процесса и владельца сессии для операций с дисками. Однако администраторам рекомендуется самостоятельно аудитировать системы: проверить членство в allow_active, ограничить доступ к D-Bus и убедиться, что версии udisks2 выше 2.10.0 и libblockdev не ниже 3.1.0.

Эксперты подчеркивают: инцидент высветил хронические проблемы управления привилегиями в Linux. Групповые разрешения, унаследованные со времен монолитных систем, плохо сочетаются с современными моделями минимальных прав. Разработчикам советуют внедрять принцип "явного отказа" (explicit deny) для всех сервисов, взаимодействующих с оборудованием, а также использовать изоляцию через namespaces или SELinux. Для критических инфраструктур предлагается временное отключение udisksd или его запуск в chroot-окружении. Уязвимость CVE-2025-6019 - не просто технический баг, а сигнал о необходимости пересмотра стандартов безопасности в открытых экосистемах. Распространенность компонента делает угрозу масштабной: под ударом облачные инстансы, контейнерные платформы и IoT-устройства на базе Linux. Обновления должны быть применены немедленно - задержка даже на сутки дает злоумышленникам форум для атак.

Proof of Concept (PoC)

Простой скрипт Python может вызвать уязвимость

Комментарии: 0