Несколько дней назад Была обнародована информация о новой критической уязвимости. это влияет на среды Linux, называемые "Pack2TheRoot". Зарегистрирован под CVE-2026-41651Эта уязвимость затрагивает PackageKit (инструмент, который выступает в качестве уровня абстракции D-Bus для унификации управления пакетами в различных дистрибутивах).
Упоминается, что решение суда Это позволяет любому локальному пользователю без привилегий устанавливать или удалять пакеты по своему усмотрению. Используя эту уязвимость, злоумышленник может получить полный root-доступ к скомпрометированной системе. Последствия значительны, учитывая, что проблема существует с версии 1.0.2, выпущенной более двенадцати лет назад (в 2014 году), и затрагивает стандартные конфигурации популярных дистрибутивов, таких как Ubuntu, Debian, Rocky Linux и Fedora.
Pack2TheRoot: Уязвимость PackageKit предоставляет права администратора в Linux.
El Обнаружение Pack2TheRoot стало результатом расследования. возглавляемая «Красной командой» Deutsche Telekom, которая Они использовали модель искусственного интеллекта Клода Опуса. чтобы направлять их анализ векторов повышения локальных привилегий.
LoПервоначально исследователи заметили, что команду pkcon install можно выполнить без ввода пароля.В некоторых конфигурациях Fedora это вызвало подозрения относительно используемой системы авторизации. После подтверждения и ответственного сообщения об уязвимости сопровождающим PackageKit, Разработан рабочий эксплойт. Хотя подробная публикация была стратегически отложена, чтобы дать пользователям и администраторам возможность установить необходимые обновления.
Механизм атаки
корень Уязвимость заключается в состоянии карьеры. (Тип TOCTOU: Оплата в момент проверки и оплаты в момент использования) в управление транзакциями в фоновом режиме (демон) PackageKitPackageKit, работая от имени root-пользователя, делегирует полномочия системе polkit. Когда клиент запрашивает установку пакета, например, с помощью метода InstallFiles, он передает набор флагов, определяющих поведение транзакции.
Специальные флаги, такие как SIMULATE или ONLY_DOWNLOAD, указывают PackageKit пропускать авторизацию polkit. поскольку они представляют собой безопасные операции, которые, теоретически, не изменяют состояние системы. Сбой происходит из-за того, что обработчик транзакций перезаписывает данные. Эти индикаторы безусловно кэшируются при каждом новом вызове, без проверки того, была ли транзакция уже авторизована или находится в процессе выполнения.

Un Злоумышленник может инициировать транзакцию, используя «безопасные» индикаторы. (таким образом, обходя разрешение Polkit) и, спустя миллисекунды, отправить второй запрос D-Bus. Для той же транзакции, но на этот раз со вредоносными флагами, которые заставляют выполнить фактическую установку. Из-за приоритетной архитектуры цикла событий GLib (где сообщения D-Bus обрабатываются до обратных вызовов в режиме ожидания), второй запрос перезаписывает параметры непосредственно перед тем, как планировщик начнет операцию.
В результате транзакция, ранее авторизованная как «безопасная», выполняется с подставленными параметрами.Установка пакета осуществляется с правами администратора.
Решения и меры по смягчению последствий
Следует отметить, что Уязвимость устранена в версии PackageKit 1.3.5.Поэтому разработчики настоятельно рекомендуют системным администраторам проверить, уязвимы ли их системы, проверив состояние служб с помощью таких команд, как systemctl status packagekit, или отслеживая активность с помощью pkmon.
Лас- Крупнейшие дистрибутивы, включая Debian, Ubuntu и Fedora, уже начали распространение пакетов. Обновления выпускаются через официальные каналы. Для систем, где патч недоступен сразу, исследователи предложили обходное решение: развертывание пользовательского правила polkit.
Esta Это правило немедленно и незаметно запрещает действия по установке PackageKit. Для любого пользователя, кроме root, это предотвращает открытие окна состояния гонки. Важно отметить, что, хотя эксплойт выполняется быстро и незаметно, он оставляет четкий след в системных журналах: после успешного выполнения эксплойта демон PackageKit аварийно завершает работу из-за ошибки утверждения (assertion failed: (!transaction->priv->emitted_finished)). Хотя systemd перезапускает службу, предотвращая атаку типа «отказ в обслуживании», наличие этого сообщения в journalctl является сильным индикатором того, что система была скомпрометирована.
Наконец, если вас интересует более подробная информация по этому вопросу, вы можете обратиться к следующему источнику: подробности по следующей ссылке.