V linuxovém garbage collectoru byla zjištěna chyba, která by mohla vést k eskalaci oprávnění 

zranitelnost systemd

Před pár dny Jann Horn z týmu Google Project Zero, kteří dříve identifikovali zranitelnosti Spectre a Meltdown, odhalil techniku, jak využít zranitelnost nalezený v garbage collectoru linuxového jádra (CVE-2021-4083).

Zranitelnost je způsobeno rasovým stavem když jsou vyčištěny deskriptory souborů soketu unix a potenciálně umožňuje neprivilegovanému místnímu uživateli spustit váš kód na úrovni jádra.

Problém je zajímavé, protože časové okno během kterého nastane rasová podmínka byl hodnocen jako příliš malý vytvářet skutečné zranitelnosti, ale autor studie ukázal, že i zpočátku skeptická zranitelnost se může stát zdrojem skutečných útoků, pokud má tvůrce zranitelnosti potřebné schopnosti a čas.

Yann Horn ukázal, jak pomocí filigránových manipulací je možné snížit stav Událost závodu, ke které dochází při současném volání funkcí close() a fget() k plně využité zranitelnosti typu use-after-free a získání přístupu k již uvolněné datové struktuře v jádře.

Dojde ke sporu během procesu zavírání deskriptoru souboru při současném volání funkcí close() a fget(). Volání close() lze provést před provedením fget(), což zmást kolektor položek nepoužívané, protože podle refcountu nebude mít struktura souboru žádné externí odkazy, ale zůstane připojena k deskriptoru souboru, tj. sběrač odpadu bude předpokládat, že má výhradní přístup ke struktuře, ale ve skutečnosti na krátkou dobu, zbývající položka v tabulce deskriptoru souboru bude i nadále indikovat, že se struktura uvolňuje.

Aby se zvýšila pravděpodobnost zadání závodní podmínky, bylo použito několik triků, které umožnily zvýšit pravděpodobnost úspěchu podílu na 30 % při provádění konkrétních optimalizací systému. Například, aby se prodloužila doba přístupu ke struktuře s deskriptory souborů o několik set nanosekund, byla data vyprázdněna z mezipaměti procesoru znečištěním mezipaměti aktivitou na jiném jádru CPU, což umožnilo vrátit strukturu z paměti a ne rychlá mezipaměť CPU.

Druhá důležitá vlastnost byl použití přerušení generovaných hardwarovým časovačem aby se prodloužil čas závodu. Načasování bylo zvoleno tak, aby se obsluha přerušení spustila během výskytu konfliktu a na chvíli přerušila provádění kódu. K dalšímu oddálení návratu kontroly vygeneroval epoll ve frontě přibližně 50 tisíc položek, což vyžadovalo iteraci obsluhy přerušení.

Technika zneužití zranitelnosti byla zveřejněna po 90denní lhůtě pro nezveřejnění. Problém

a bylo to opraveno začátkem prosince. Oprava byla zahrnuta v jádře 5.16 a také se přesunula do LTS větví jádra a balíčků s jádrem dodávaných v distribucích. Je třeba poznamenat, že zranitelnost byla identifikována při analýze podobného problému CVE-2021-0920, který se projevuje v garbage collectoru při zpracování příznaku MSG_PEEK.

Další zranitelnost, která byla nalezena nedávno v jádře Linuxu to bylo CVE-2022-0742 že může vyčerpat dostupnou paměť a vzdáleně způsobit odmítnutí služby odesláním speciálně vytvořených paketů icmp6. Problém souvisí s únikem paměti, ke kterému dochází při zpracování zpráv ICMPv6 s typy 130 nebo 131.

Problém se vyskytuje od jádra 5.13 a byl opraven ve verzích 5.16.13 a 5.15.27. Problém se netýkal stabilních větví Debian, SUSE, Ubuntu LTS (18.04, 20.04) a RHEL, byl opraven na Arch Linuxu.

Konečně pokud máte zájem o tom vědět více v poznámce, můžete zkontrolovat podrobnosti v následující odkaz.


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.