Dirty Pipe: уязвимост, която позволява данните да бъдат презаписани

Наскоро новината съобщи това беше идентифицирана уязвимост в ядрото на Linux и който вече е каталогизиран под CVE-2022-0847 и който те са посочили като "мръсна тръба".

Тази уязвимост, наречена "мръсна тръба"позволява презаписване на съдържанието на кеша на страницата за всеки файл, включително тези, настроени само за четене, отворени с флага O_RDONLY или разположени във файлови системи, монтирани само за четене.

От практическа страна, уязвимостта може да се използва за инжектиране на код в произволни процеси или повредени данни в отворени файлове. Например, можете да промените съдържанието на файла authorized_keys за sshd процеса.

Относно Dirty Pipe

Това е подобно на критичната уязвимост Dirty COW идентифициран през 2016 г. и се споменава, че Dirty Pipe е на същото ниво като Dirty COW по отношение на опасност, но че този е много по-лесен за работа.

Dirty Pipe беше идентифициран по време на анализа на оплаквания за периодични повреди на архиви изтеглени през мрежата на система, която изтегля компресирани файлове от сървър за регистриране (37 повреди за 3 месеца на заредена система), които са подготвени с помощта на операцията splice() и неназовани тръби.

Уязвимост се проявява от версията на ядрото на Linux 5.8, пуснат през август 2020 г.

По друг начин можем да кажем, че присъства в Debian 11, но не засяга базовото ядро ​​в Ubuntu 20.04 LTS, докато за RHEL 8.x и openSUSE/SUSE 15 ядра, които първоначално са базирани на стари клонове, но е възможно че промяната, която причинява проблема, е прехвърлена към тях (все още няма точни данни).

Уязвимостта се дължи на липсата на инициализация на стойността "buf->flags" в кода на функциите copy_page_to_iter_pipe() и push_pipe(), въпреки че паметта не се изчиства при разпределяне на структурата и с определени манипулации с неназован pipes, "buf->flags" може да съдържа стойност от друга операция. С тази функция непривилегирован локален потребител може да постигне появата на стойността PIPE_BUF_FLAG_CAN_MERGE във флага, което им позволява да презаписват данни в кеша на страницата просто чрез записване на нови данни в специално подготвена неназована тръба.

за атака може да се направи, имате нужда от целеви файл, който трябва да бъде четим и тъй като правата за достъп не се проверяват при запис в канал, може да се извърши замяна на кеша на страниците, дори за файлове, разположени на дялове само за четене (например за c CD-ROM файлове).

При това, след подмяна на информацията в кеша на страницата, процесът при четене на данните от файла няма да получи реалните данни, а подменените.

Споменава се, че операцията Dirty Pipe се свежда до създаване на неназована тръба и запълването й с произволни данни за да постигнете настройка на флага PIPE_BUF_FLAG_CAN_MERGE на всички пръстеновидни структури, свързани с него.

След това данните се четат от канала, но флагът остава зададен за всички екземпляри на структурата pipe_buffer в пръстеновидните структури pipe_inode_info. След това се прави извикване на splice(), за да се прочетат данните от целевия файл в неназована тръба, като се започне от необходимото отместване. Когато записвате данни в тази неназована тръба, флагът PIPE_BUF_FLAG_CAN_MERGE ще презапише данните в кеша на страницата, вместо да създава нов екземпляр на структурата pipe_buffer.

Накрая Ако се интересувате да научите повече за това, можете да проверите подробностите в оригиналната бележка В следващия линк.

Освен това, ако се интересувате от да можете да следите или да знаете за публикуването на актуализации от пакети в основните дистрибуции, можете да го направите от тези страници: DebianSUSEUbuntuRHELFedoraGentooArchLinux.

Споменава се, че предложената корекция на уязвимостта е налична във версии на ядрото на Linux 5.16.11, 5.15.25 и 5.10.102 и корекцията също е включена в ядрото, използвано на платформата Android.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.