Reptar zranitelnost ovlivňující procesory Intel

Tavis Ormandy, bezpečnostní výzkumník společnosti Google, identifikoval novou zranitelnost (CVE-2023-23583) v procesorech Intel s kódovým označením Reptar, která především představuje hrozbu pro cloudové systémy provozující virtuální stroje různých uživatelů. Tato chyba zabezpečení umožňuje, aby se systém zablokoval nebo zhroutil, když jsou určité operace prováděny na neprivilegovaných hostujících systémech. Pro testování vašich systémů byla zveřejněna utilita, která vytváří podmínky pro projevy zranitelnosti.

Teoreticky lze zranitelnost využít k eskalaci privilegií ze třetího na nulový ochranný kruh (CPL0) a úniku z izolovaných prostředí, ale tento scénář zatím nebyl v praxi potvrzen kvůli obtížím ladění na mikroarchitektonické úrovni. Interní revize ve společnosti Intel také ukázala potenciál pro zneužití této chyby zabezpečení k eskalaci oprávnění za určitých podmínek.

Podle výzkumníka je zranitelnost přítomna v rodinách procesorů Intel Ice Lake, Rocket Lake, Tiger Lake, Raptor Lake, Alder Lake a Sapphire Rapids. Zpráva Intelu uvádí, že problém se objevuje od 10. generace (Ice Lake) procesorů Intel Core a třetí generace procesorů Xeon Scalable, stejně jako u procesorů Xeon E/D/W (Ice Lake, Skylake, Haswell, Broadwell , Skylake, Sapphire Rapids, Emerald Rapids, Cascade Lake, Cooper Lake, Comet Lake, Rocket Lake) a Atom (Apollo Lake, Jasper Lake, Arizona Beach, Alder Lake, Parker Ridge, Snow Ridge, Elkhart Lake a Denverton). Dotyčná chyba zabezpečení byla opravena ve včerejší aktualizaci mikrokódu 20231114.

Zranitelnost je způsobena skutečností, že za určitých mikroarchitektonických okolností je provedení instrukce „REP MOVSB“ zakódováno nadměrnou předponou „REX“, což vede k nedefinovanému chování. Problém byl objeven při testování redundantních prefixů, které by teoreticky měly být ignorovány, ale v praxi vedly k podivným efektům, jako je ignorování nepodmíněných větví a přerušení ukládání ukazatele v xsave a instrukcích volání. Další analýza ukázala, že přidání redundantní předpony k instrukci "REP MOVSB" způsobí poškození obsahu vyrovnávací paměti ROB (ReOrder Buffer) používaného k objednání instrukcí.

Má se za to, že chyba je způsobena nesprávným výpočtem velikosti instrukce „MOVSB“, což vede k narušení adresování instrukcí zapsaných do vyrovnávací paměti ROB za MOVSB ​​​​s nadměrným prefixem a offsetu ukazatele instrukce. Taková desynchronizace může být omezena na přerušení mezivýpočtů s následným obnovením integrálního stavu. Pokud však narazíte na více jader nebo vláken SMT současně, můžete poškodit stav mikroarchitektury natolik, že se zhroutí.

Zdroj: opennet.ru

Přidat komentář