Уразлівасць Reptar, якая закранае працэсары Intel

Тэвіс Армандзі (Tavis Ormandy), даследнік бяспекі з кампаніі Google, выявіў новую ўразлівасць (CVE-2023-23583) у працэсарах Intel, атрымалую кодавае імя Reptar і ў асноўным якая прадстаўляе небяспеку для хмарных сістэм, у якіх выконваюцца віртуальныя машыны розных карыстачоў. Уразлівасць дазваляе выклікаць завісанне ці аварыйны прыпынак працы сістэмы пры выкананні ў непрывілеяваных гасцявых сістэмах вызначаных аперацый. Для тэставання сваіх сістэм апублікаваная ўтыліта, якая стварае ўмовы для праявы ўразлівасці.

Тэарэтычна, уразлівасць можа быць скарыстана для падвышэння прывілеяў з трэцяга да нулявога кольца абароны (CPL0) і вынахаду з ізаляваных асяроддзяў, але дадзены сцэнар пакуль не атрымаў пацверджанні на практыку з-за цяжкасцяў адладкі на мікраархітэктурным узроўні. Унутраная праверка ў Intel таксама паказала патэнцыйную магчымасць выкарыстання ўразлівасці для падвышэння прывілеяў пры вызначаных умовах.

Па дадзеных даследніка ўразлівасць прысутнічае ў сямействах працэсараў Intel Ice Lake, Rocket Lake, Tiger Lake, Raptor Lake, Alder Lake і Sapphire Rapids. У справаздачы Intel згадваецца, што праблема выяўляецца пачынальна з 10 пакаленні (Ice Lake) працэсараў Intel Core і трэцяга пакалення Xeon Scalable, а таксама ў працэсарах Xeon E/D/W (Ice Lake, Skylake, Haswell, Broadwell, Skylake, Sapphire Rapids, Emerald Rapids, Cascade Lake, Cooper Lake, Comet Lake, Rocket Lake) і Atom (Apollo Lake, Jasper Lake, Arizona Beach, Alder Lake, Parker Ridge, Snow Ridge, Elkhart Lake і Denverton). Разгляданая ўразлівасць ухілена ва ўчорашнім абнаўленні микрокода20231114.

Уразлівасць выклікана тым, што пры пэўным збегу мікраархітэктурыных абставін выкананне інструкцыі «REP MOVSB» кадуецца з залішнім прэфіксам «REX», што прыводзіць да нявызначаных паводзін. Праблема была выяўлена падчас тэставання залішніх прэфіксаў, якія тэарэтычна павінны ігнаравацца, але на практыку прыводзілі да дзіўных эфектаў, напрыклад, ігнараванню безумоўных пераходаў і парушэнню захавання паказальніка ў інструкцыях xsave і call. Далейшы разбор паказаў, што даданне залішняга прэфікса для інструкцыі "REP MOVSB" выклікае пашкоджанне змесціва буфера ROB (ReOrder Buffer), які ўжываецца для парадкавання інструкцый.

Мяркуецца, што памылка выклікана няправільным вылічэннем памеру інструкцыі "MOVSB", што прыводзіць да парушэння адрасацыі інструкцый, запісаных у буфер ROB пасля MOVSB ​​з залішнім прэфіксам, і зрушэнню паказальніка на інструкцыі. Падобная рассінхранізацыя можа абмежавацца парушэннем прамежкавых вылічэнняў з наступным аднаўленнем цэласнага стану. Але калі выклікаць збой адначасова на некалькіх ядрах або SMT-струменяў, можна дамагчыся дастатковага пашкоджання мікраархітэктурнага стану для аварыйнага прыпынку працы.

Крыніца: opennet.ru

Дадаць каментар