AMD Linux javítás a SRSO/Inception sebezhetőség kezeléséhez

kami911 képe

Az AMD Linux-mérnöke, Borislav Petkov egy új javítást adott ki, amely a Speculative Return Stack Overflow (SRSO) vagy más néven „Inception” sebezhetőség kezelését érinti. Ez a hiba 2023 augusztusában került nyilvánosságra, és a Zen 1-től Zen 4-ig terjedő AMD CPU-kat érinti. A kernel.org dokumentáció szerint a hiba a következőképpen írható le:

Az AMD CPU-k a visszatérési (RET) utasításokat egy "Visszatérési Cím Előrejelző" (Return Address Predictor, RAP) segítségével jósolják meg. Egyes esetekben egy nem architekturális hívás (CALL) utasítás is belépést hozhat létre a RAP-ben, amelyet egy későbbi RET utasítás céljának megjóslására használnak.

A sebezhetőséget kihasználva támadók megzavarhatják a CPU előrejelzési rendszerét, amely információszivárgást eredményezhet.

A frissítés tartalma

A legújabb frissítés két új bitet vezet be: a "SRSO_USER_KERNEL_NO" és a "SRSO_MSR_FIX" bitet, amelyek segítségével a Linux jobb védelmet nyújthat az SRSO ellen az érintett Ryzen és EPYC CPU-k esetében. Ezek a következőket jelzik:

  • SRSO_USER_KERNEL_NO: ha az értéke 1, akkor a CPU-t nem érinti az SRSO sebezhetőség a felhasználói és kernel mód közötti határon.
  • SRSO_MSR_FIX: ha az értéke 1, a szoftver a BpSpecReduce módot alkalmazhatja az SRSO mitigálására.

A javítás részletezése szerint, ha az adott CPU-n a CPUID Fn8000_0021_EAX[30] bit értéke 1, akkor a rendszer az IBPB-on-VMEXIT (Indirect Branch Predictor Barrier) eljárást használja az SRSO elleni védekezésre, amely VM-ek futtatása esetén aktiválódik. A CPUID Fn8000_0021_EAX[31] bit esetében pedig engedélyezett lesz a BpSpecReduce beállítás.

Miért csak most érkezett a javítás?

Bár az újabb SRSO védelmi képességek már 2024 februárjában megjelentek egy technikai frissítésben, a Linux kernel most lett frissítve, hogy támogatást nyújtson ezekhez. A javítás jelenleg elérhető a Linux kernel levelezőlistáján, ahol további véleményezésre vár.

Az AMD processzorokat érinti az INCEPTION sebezhetőség (CVE-2023-20569), amely egy régebbi probléma, ami javításra került. Az új spekulatív oldalcsatornás támadás minden Zen alapú processzort érint. Mind a Zen 3, mind a Zen 4 processzorok mikrokód frissítést igényelnek, míg a korábbi Zen CPU-k Linux kernel, vagy az adott operációs rendszer alapú megoldást igényelnek. Az INCEPTION enyhítése várhatóan nem csökkenti a teljesítményt. Ez az oldalcsatornás sebezhetőség lehetővé teheti a támadó számára, hogy befolyásolja a visszatérési cím előrejelzését. Ez spekulatív végrehajtást eredményezhet a támadó által ellenőrzött címen, ami potenciálisan információ felfedéséhez vezethet. A gyártó szerint:

A támadás spekulatív végrehajtást eredményezhet egy támadó által ellenőrzött címen, ami potenciálisan információk felfedéséhez vezethet. Ez a támadás hasonló a korábbi, ág-előrejelzésen alapuló támadásokhoz, mint például a Spectrev2 és a Branch Type Confusion (BTC)/RetBleed. A hasonló támadásokhoz hasonlóan a spekuláció az aktuális címtartományra korlátozódik, és a kihasználáshoz a támadónak ismernie kell a címtartományt és elegendő regisztert kell irányítania a RET (return from procedure) spekuláció idején. Ezért az AMD úgy véli, hogy ez a sebezhetőség csak helyileg, például letöltött rosszindulatú szoftverek segítségével kihasználható, és azt ajánlja, hogy az ügyfelek alkalmazzák a legjobb biztonsági gyakorlatokat, beleértve a naprakész szoftverek és rosszindulatú szoftvereket felismerő eszközök használatát. Az AMD-nek jelenleg nincs tudomása arról, hogy az "Inception"-t a kutatási környezeten kívül bárki is kihasználná.

A kihasználás bemutatott módja:

A Sebezhetőség

A RAS akkor frissül, amikor egy CALL utasítás előrejelzése megtörténik, nem pedig a a csővezeték egy későbbi pontján.  A RAS azonban alapvetően egy körkörös verem. Lehetőség van az elágazás típusának és a cél előrejelzésének mérgezésére, így hogy a támadó által kiválasztott ponton az elágazás előrejelzője elég CALL-t jósol egymás után, hogy a teljes RAS-t körbejárja és a helyes visszatérési előrejelzést felülírja a támadó egyik visszatérési előrejelzésével. választásával. Ez lehetővé teszi a támadó számára a RET-spekuláció irányítását az áldozat kontextusában, és ennek eredményeképpen tetszőleges adatokat szivárogtathat ki.

Megoldás

Az AMD azt ajánlja, hogy az ügyfelek a „Zen 3” és „Zen 4” CPU-architektúrán alapuló termékek esetében vagy az önálló µcode javítást, vagy a µcode javítást tartalmazó BIOS-frissítést alkalmazzák. Az AMD az alábbiakban felsorolt céldátumokban tervezi a frissített AGESA™-verziók kiadását az eredetiberendezés-gyártók (OEM), az eredeti tervezőgyártók (ODM) és az alaplapgyártók (MB) számára. A gyártó arra kéri a felhasználókat, hogy forduljanak az OEM-hez, ODM-hez vagy MB-hez a termékére jellemző BIOS-frissítésért, amely adott esetben az alábbiakban felsorolt időpontok után következik. A „Zen” vagy „Zen 2” CPU-architektúrán alapuló termékek esetében nincs szükség µcode-javításra vagy a µcode-javítást tartalmazó BIOS-frissítésre, mivel ezek az architektúrák már úgy vannak kialakítva, hogy az ágtípus-előrejelzéseket az elágazás-előrejelzőből ki lehessen üríteni.

Az operációs rendszer (OS) konfigurációs lehetőségei is rendelkezésre állhatnak a sebezhetőség bizonyos aspektusainak enyhítésére. Az AMD azt javasolja, hogy a felhasználók értékeljék kockázati környezetüket (beleértve a nem megbízható helyi kód futtatásának kockázatát), amikor az operációs rendszerrel kapcsolatos enyhítési lehetőségekről döntenek, és az operációs rendszerre vonatkozó dokumentációban találnak útmutatást. A "Zen 3" és "Zen 4" alapú rendszereknek a BIOS frissítésbe beépített µcode javítófoltra lesz szükségük az operációs rendszer konfigurációs opcióinak engedélyezése előtt.

Érintett processzorok

Az INCEPTION sérülékenységgel érintett processzorok listája:

Adatközpont termékek

A mikrokód frissítés vagy új AGESA firmware telepítése szükséges.

Mitigation details
Update to listed versions or higher

1st Gen AMD EPYC™ Processors

2nd Gen AMD EPYC™ Processors

3rd Gen AMD EPYC™ 
Processors

4th Gen AMD EPYC™ 
Processors

µcode

Not applicable Not applicable Milan B0 – 0x0A001079
Milan B1 – 0x0A0011CF or 0x0A0011D1
Milan-X B2 – 0x0A001234
Genoa B1: 0x0A10113E
Genoa-X B2: 0x0A10123E
Bergamo A1: 0x0AA00116
Bergamo A2: 0x0AA00212

SEV

Not applicable Not applicable 01.01.37.08 01.01.37.16

AGESA™ Firmware

Not applicable Not applicable MilanPI 1.0.0.C
(Target Dec 2023)
GenoaPI 1.0.0.9
(2023-07-28)

OS Config Options

Refer to your OS vendor Refer to your OS vendor Refer to your OS vendor Refer to your OS vendor

Asztali termékek

Mitigation details
Update to listed versions or higher

AMD Ryzen™ 3000 Series Desktop Processors

AMD Ryzen™ 5000 Series Desktop Processors

AMD Ryzen™ 4000 Series Desktop Processors with Radeon™ Graphics

AMD Ryzen™ 5000 Series Desktop Processor with Radeon™ Graphics 

AMD Ryzen™ 7000 Series Desktop Processors

AGESA™ Firmware

Not applicable ComboAM4v2PI 1.2.0.B
(Target Aug 2023)
Not applicable ComboAM4v2PI 1.2.0.B
(Target Aug 2023)
ComboAM5 1.0.8.0
(Target August 2023)

OS Config Options

Refer to your OS vendor Refer to your OS vendor Refer to your OS vendor Refer to your OS vendor Refer to your OS vendor

High End Desktop (HEDT) termékek

Mitigation details
Update to versions listed or higher

AMD Ryzen™ Threadripper™ 3000 Series Processors

AGESA™ Firmware

Not applicable

OS Config Options

Refer to your OS vendor

Munkaállomás termékek

Mitigation details
Update to versions listed or higher

AMD Ryzen™ Threadripper™ PRO 3000WX Series

Processors

AMD Ryzen™ Threadripper™ PRO 5000WX Processors

AGESA™ Firmware

Not applicable ChagallWSPI-sWRX8 1.0.0.7
(Target Dec 2023)

OS Config Options

Refer to your OS vendor Refer to your OS vendor

Mobile – AMD Ryzen™ termékek

Mitigation details
Update to listed versions or higher

AMD Ryzen™ 3000 Series Mobile Processor with Radeon™ Graphics

AMD Ryzen™ 4000 Series Mobile Processors with Radeon™ Graphics
 

AMD Ryzen™ 5000 Series Mobile Processors with Radeon™ Graphics

AMD Ryzen™ 5000 Series Mobile Processors with Radeon™ Graphics

AMD Ryzen™ 7020 Series Mobile Processors with Radeon™ Graphics

AGESA™ Firmware

Not applicable Not applicable Not applicable CezannePI-FP6 1.0.0.Fa
(Target Aug 2023)
Not applicable

OS Config Options

Refer to your OS vendor Refer to your OS vendor Refer to your OS vendor Refer to your OS vendor Refer to your OS vendor

Mitigation details
Update to listed versions or higher

AMD Ryzen™ 6000 Series Processors with Radeon™ Graphics

AMD Ryzen™ 7035 Series Processors with Radeon™ Graphics

AMD Ryzen™ 5000 Series Processors with Radeon™ Graphics

AMD Ryzen™ 7030 Series Processors with Radeon™ Graphics

AMD Ryzen™ 7040 Series Mobile Processors with Radeon™ Graphics

AMD Ryzen™ 7045 Series Processors

AGESA™ Firmware

RembrandtPI-FP7_1.0.0.9a
(Target Aug 2023)
RembrandtPI-FP7_1.0.0.9a
(Target Aug 2023)
CezannePI-FP6 1.0.0.Fa
(Target Aug 2023)
CezannePI-FP6 1.0.0.Fa
(Target Aug 2023)
PhoenixPI-FP8-FP7_1.0.0.2a
(Target Aug 2023)
DragonRangeFL1PI 1.0.0.3b
(Target Aug 2023)

OS Config Options

Refer to your OS vendor Refer to your OS vendor Refer to your OS vendor Refer to your OS vendor Refer to your OS vendor Refer to your OS vendor

Mobile – AMD Athlon™ termékek

Mitigation details
Update to listed versions or higher

AMD Athlon™ 3000 Series Mobile Processors with Radeon™ Graphics

AMD Athlon™ 3000 Series Mobile Processors with Radeon™ Graphics

AGESA™ Firmware

Not applicable Not applicable

OS Config Options

Refer to your OS vendor Refer to your OS vendor

Az előző javítás

CPU mikrokód frissítéssel, operációs rendszer frissítéssel javítandó. A Linux kernelhez készített frissített mikrókód fájlok itt találhatóak, így azt a Linux rendszerek frissítésével már telepíthető, vagy hamarosan telepíthető lesz - ahogy ez a javítás utat talál magának a régebbi LTS kernelekhez és GNU + Linux terjesztésekhez.

További információk, hivatkozások