CVE-2022-0847
Summary
V Linux kernelu byla objevena race condition ve filesystem pipe mechanizmu, která umožňovala útočníkovi přepsat data v paměti v rámci adresního prostoru procesu s vyššími právy.
Writeup
Dirty Pipe využíval nepřesnost v implementaci pipe buffering v Linux kernelu. Při zápisu do pipe a následném přístupu k datům z jiného procesu se vytvořila mezera v synchronizaci, která umožnila přepsat obsah souboru nebo paměti v kontextu procesu s vyššími oprávněními. Tento mechanismus nebyl tradičním 'shellcode injection' v userland aplikaci, ale byl schopný zneužít kernel bug k modifikaci souborů a získání oprávnění pro přístup k citlivým zdrojům. Z pohledu bezpečnosti je důležité, že útok fungoval bez nutnosti vlastní exploitable binary nebo běhu uživatelského kódu s root oprávněními; stačilo využít chybějící ověřování a race condition v kernelu. Dirty Pipe je dobrým příkladem toho, jak i relativně jednoduchá křehkost v kernel subsystému může vést k praktické privilege escalation, zejména tehdy, když aplikace a služby běží s rozšířenými právy na Linux serverech.
Impact
Útočník mohl upravovat obsah souborů, přepisovat privilegované konfigurační soubory a případně získat vyšší práva v systému. V praxi se jedná o jednu z nejvýraznějších privilege escalation zranitelností pro Linux v roce 2022.
Affected products
- Linux kernel before 5.16.11
- Linux kernel before 5.15.25
- Linux kernel before 5.10.102