Pack2TheRoot (CVE-2026-41651): Chyba PackageKit, která ohrožuje Linux

Klíčové body:
  • Chyba je způsobena soubojovým stavem (TOCTOU) v rámci správy transakcí D-Bus, který obchází autorizaci polkit.
  • To přímo ovlivňuje populární distribuce jako Ubuntu, Debian, Fedora a Rocky Linux v jejich výchozích instalacích.
  • Útočník může přepsat příznaky zabezpečené transakce odesláním druhého požadavku předtím, než plánovač zahájí operaci.
  • Tato zranitelnost je opravena v PackageKitu 1.3.5 a existuje dočasné zmírnění problému vytvořením vlastních pravidel v polkitu.

Pack2TheRoot

Před pár dny Byly zveřejněny informace o nové kritické zranitelnosti který ovlivňuje linuxová prostředí tzv. „Pack2TheRoot“. Katalogováno pod CVE-2026-41651.Tato chyba postihuje PackageKit (nástroj, který funguje jako abstrakční vrstva D-Bus pro sjednocení správy balíčků napříč více distribucemi).

Uvádí se, že rozhodnutí Umožňuje libovolnému lokálnímu uživateli bez oprávnění libovolně instalovat nebo odebírat balíčky. Zneužitím této zranitelnosti může útočník získat plný root přístup k napadenému systému. Dopad je značný, vzhledem k tomu, že problém existuje již od verze 1.0.2, vydané před více než dvanácti lety (v roce 2014), a ovlivňuje výchozí konfigurace populárních distribucí, jako jsou Ubuntu, Debian, Rocky Linux a Fedora.

Pack2TheRoot: Zranitelnost PackageKit poskytuje administrátorský přístup v Linuxu

El Objev Pack2TheRoot byl výsledkem vyšetřování vedený Červeným týmem společnosti Deutsche Telekom, který Použili model umělé inteligence Claudea Opuse. aby vedly svou analýzu vektorů eskalace lokálních privilegií.

LoVýzkumníci zpočátku zjistili, že příkaz pkcon install lze spustit bez nutnosti zadání hesla.v určitých konfiguracích Fedory, což vyvolalo podezření ohledně podkladové autorizace. Po potvrzení a zodpovědném nahlášení zranitelnosti správcům PackageKitu, Byl vyvinut funkční exploit, ačkoli jeho podrobné zveřejnění bylo strategicky odloženo, aby uživatelé a administrátoři mohli použít potřebné aktualizace.

Mechanika útoku

Kořen Zranitelnost spočívá v kariérním stavu (Typ TOCTOU: Z doby kontroly na dobu použití) v správa transakcí na pozadí (démon) PackageKituPackageKit, pracující jako uživatel root, deleguje autorizaci systému polkit. Když klient požádá o instalaci balíčku, například pomocí metody InstallFiles, odešle sadu příznaků, které určují chování transakce.

Specifické příznaky, jako například SIMULATE nebo ONLY_DOWNLOAD, instruují PackageKit, aby přeskočil autorizaci polkit. protože představují bezpečné operace, které teoreticky nemění stav systému. K chybě dochází, protože obslužná rutina transakce přepisuje Tyto indikátory jsou bezpodmínečně ukládány do mezipaměti s každým novým voláním, bez ověřování, zda transakce již byla autorizována nebo se právě provádí.

pack2theroot-poc2

Un Útočník může zahájit transakci pomocí „bezpečných“ indikátorů (čímž se obchází autorizace Polkitu) a o milisekundy později odešle druhý požadavek D-Bus pro stejnou transakci, ale tentokrát se škodlivými příznaky, které nařizují skutečnou instalaci. Vzhledem k architektuře priorit smyčky událostí GLib (kde jsou zprávy D-Bus zpracovávány před zpětnými voláními v případě nečinnosti) druhý požadavek přepíše parametry těsně předtím, než plánovač spustí operaci.

V důsledku toho je transakce dříve autorizovaná jako „bezpečná“ provedena s nahrazenými parametry., instalace balíčku s oprávněními správce.

Řešení a zmírňování

Je třeba poznamenat, že Tato zranitelnost byla opravena ve verzi PackageKit 1.3.5.Vývojáři proto naléhavě žádají správce systémů, aby zkontrolovali, zda jejich systémy nejsou zranitelné, a to kontrolou stavu služeb pomocí příkazů, jako je systemctl status packagekit, nebo sledováním aktivity pomocí pkmon.

the Hlavní distribuce, včetně Debianu, Ubuntu a Fedory, již začaly distribuovat balíčky. Aktualizace jsou vydávány prostřednictvím jejich oficiálních kanálů. Pro systémy, kde není záplata okamžitě k dispozici, vědci navrhli řešení: nasazení vlastního pravidla Polkit.

Tento Pravidlo okamžitě a tiše zamítá instalační akce PackageKitu. Pro všechny uživatele kromě root toto zabrání otevření okna s chybou závodu. Je důležité si uvědomit, že ačkoli je exploit rychlý a tichý, zanechává v systémových protokolech jasnou stopu: po úspěšném exploitu se démon PackageKit zhroutí kvůli selhání assertion (assertion failed: (!transaction->priv->emitted_finished)). Přestože systemd restartuje službu a zabraňuje útoku typu denial-of-service, přítomnost této zprávy v journalctl je silným indikátorem, že systém byl napaden.

Nakonec, pokud se chcete o tomto tématu dozvědět více, můžete se podívat na podrobnosti v následujícím odkazu.


Přidat jako preferovaný zdroj