Dirty Pipe: zranitelnost, která umožňuje přepisování dat

Nedávno to zprávy prolomily v jádře Linuxu byla identifikována zranitelnost a který je již katalogizován pod CVE-2022-0847 a který pojmenovali jako "špinavá trubka".

Tato chyba zabezpečení nazvaná „špinavá trubka“umožňuje přepsat obsah mezipaměti stránky pro jakýkoli soubor, včetně těch, které jsou nastaveny jako pouze pro čtení, otevírané s příznakem O_RDONLY nebo umístěné na souborových systémech připojených jen pro čtení.

Z praktického hlediska je to zranitelnost lze použít k vložení kódu do libovolných procesů nebo poškození dat v otevřených souborech. Můžete například změnit obsah souboru author_keys pro proces sshd.

O Dirty Pipe

Podobá se kritické zranitelnosti Dirty COW identifikovaný v roce 2016 a Dirty Pipe se uvádí jako na stejné úrovni jako Dirty COW, pokud jde o nebezpečí, ale že tento je mnohem jednodušší na ovládání.

Špinavá trubka byla identifikována při analýze stížností na pravidelné poškozování archivů staženo přes síť v systému, který stahuje komprimované soubory z protokolovacího serveru (37 poškození za 3 měsíce na načteném systému), které byly připraveny pomocí operace splice() a nepojmenovaných kanálů.

Zranitelnost se projevuje od linuxového jádra verze 5.8, vydané v srpnu 2020.

Z jiného pohledu můžeme říci, že je přítomen v Debianu 11, ale neovlivňuje základní jádro v Ubuntu 20.04 LTS, zatímco pro jádra RHEL 8.xa openSUSE/SUSE 15, která jsou původně založena na starých větvích, je však možné že jim byla přenesena změna, která problém způsobuje (přesná data zatím nejsou).

Chyba zabezpečení je způsobena nedostatečnou inicializací hodnoty „buf->flags“ v kódu funkcí copy_page_to_iter_pipe() a push_pipe(), přestože paměť není vyčištěna při alokaci struktury a s určitými manipulacemi s nepojmenovanými roury, "buf->flags" mohou obsahovat hodnotu z jiné operace. Pomocí této funkce může neprivilegovaný místní uživatel dosáhnout vzhledu hodnoty PIPE_BUF_FLAG_CAN_MERGE v příznaku, což mu umožňuje přepisovat data v mezipaměti stránek jednoduše zápisem nových dat do speciálně připraveného nepojmenovaného kanálu.

za útok lze provést, potřebujete cílový soubor, který musí být čitelný a protože se při zápisu do kanálu nekontrolují přístupová práva, lze provést výměnu mezipaměti stránek, a to i pro soubory umístěné na oddílech pouze pro čtení (například pro soubory c CD-ROM).

Díky tomu po nahrazení informací v mezipaměti stránek proces při čtení dat ze souboru neobdrží skutečná data, ale nahrazená.

Je to zmíněno operace Dirty Pipe se scvrkává na vytvoření nepojmenované roury a její naplnění libovolnými daty k dosažení nastavení příznaku PIPE_BUF_FLAG_CAN_MERGE na všech prstencových strukturách, které jsou s ním spojené.

Data jsou poté čtena z roury, ale příznak zůstává nastaven na všech instancích struktury pipe_buffer v kruhových strukturách pipe_inode_info. Poté se provede volání funkce splice() pro načtení dat z cílového souboru do nepojmenovaného kanálu, počínaje požadovaným offsetem. Při zápisu dat do tohoto nepojmenovaného kanálu přepíše příznak PIPE_BUF_FLAG_CAN_MERGE data v mezipaměti stránek namísto vytvoření nové instance struktury pipe_buffer.

Konečně Máte-li zájem o tom vědět více, podrobnosti můžete zkontrolovat v původní poznámce Na následujícím odkazu.

Také, pokud máte zájem být schopen sledovat nebo vědět o zveřejňování aktualizací balíčků v hlavních distribucích, můžete to udělat z těchto stránek: DebianSUSEubuntuRHELFedoraGentooArchLinux.

Je zmíněno, že navrhovaná oprava zranitelnosti je dostupná v Linux Kernel verze 5.16.11, 5.15.25 a 5.10.102 a oprava je také zahrnuta v jádře používaném na platformě Android.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.