Преди няколко дни Публикувана е информация за нова критична уязвимост което засяга 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 съобщенията се обработват преди обратните извиквания в режим на готовност), втората заявка презаписва параметрите точно преди планировчикът да започне операцията.
В резултат на това транзакцията, предварително оторизирана като „безопасна“, се изпълнява със заместените параметри., инсталиране на пакета с администраторски права.
Решения и смекчаване на последиците
Трябва да се отбележи, че Уязвимостта е отстранена във версия 1.3.5 на PackageKit.Затова разработчиците призовават системните администратори да проверяват дали системите им са уязвими, като проверяват състоянието на услугата с помощта на команди като systemctl status packagekit или като наблюдават активността с pkmon.
на Основните дистрибуции, включително Debian, Ubuntu и Fedora, вече са започнали да разпространяват пакети. Актуализациите се пускат чрез официалните им канали. За системи, за които не е наличен веднага пач, изследователите са предложили заобиколно решение: внедряване на персонализирано правило polkit.
това Правилото незабавно и безшумно отказва действията по инсталиране на PackageKit. За всеки потребител, различен от root, това предотвратява отварянето на прозореца за условия на състезание. Важно е да се отбележи, че въпреки че експлойтът е бърз и безшумен, той оставя ясна следа в системните логове: след успешен експлойт, демонът PackageKit се срива поради неуспешно твърдение (assertion failed: (!transaction->priv->emitted_finished)). Въпреки че systemd рестартира услугата, предотвратявайки атака от типа „отказ от услуга“, наличието на това съобщение в journalctl е силен индикатор, че системата е била компрометирана.
Накрая, ако се интересувате да научите повече за това, можете да се консултирате с подробности в следващия линк.