Az Intel a processzorok mikroarchitektúráján keresztüli adatszivárgások egy új osztályáról hozott nyilvánosságra információkat, amelyek az MMIO (Memory Mapped Input Output) mechanizmus manipulálásával lehetővé teszik a más CPU-magokon feldolgozott információk meghatározását. A sérülékenységek például lehetővé teszik az adatok kinyerését más folyamatokból, Intel SGX enklávéból vagy virtuális gépekből. A sérülékenységek csak az Intel processzoraira vonatkoznak, más gyártók processzorait nem érintik a biztonsági rések.
A sérülékenységek különböző Intel CPU-kban jelennek meg, köztük a Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake és Rocketlake mikroarchitektúrákon alapuló processzorokban, valamint Xeon EP/EX, Scalable és néhány Atom szerverprocesszorban. A támadás végrehajtásához hozzáférés szükséges az MMIO-hoz, amely például olyan virtualizációs rendszerekben érhető el, amelyek lehetővé teszik az MMIO elérését a támadó által irányított vendégrendszerek számára. Javításra is szükség lehet az Intel SGX (Software Guard Extensions) izolált enklávékat használó rendszereken.
A sérülékenység blokkolásához mikrokód frissítésre és a VERW utasítás használatán alapuló további szoftvervédelmi módszerek alkalmazására van szükség a mikroarchitektúra pufferek tartalmának törlésére, amikor visszatér a kernelből a felhasználói térbe, vagy amikor az irányítást átadja a vendégrendszernek. Hasonló védelmet használnak az MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling) és TAA (Transactional Asynchronous Abort) osztályok korábban azonosított támadásainak blokkolására is.
A mikrokód oldalán a védelem megvalósításához szükséges módosításokat az Intel CPU-khoz készült májusi mikrokód-frissítésben (IPU 2022.1) javasolták. A kernelben Linux Az 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284 és 4.9.319 kiadások egy új támadási osztály elleni védelmet tartalmaznak. A rendszer MMIO sebezhetőségeire való érzékenységének ellenőrzése és a kernel bizonyos védelmi mechanizmusainak aktivitásának értékelése. Linux Hozzáadtuk a „/sys/devices/system/cpu/vulnerabilities/mmio_stale_data” fájlt. A védelem aktiválásának vezérléséhez implementáltuk az „mmio_stale_data” kernel boot paramétert. Felveheti a következő értékeket: „full” (engedélyezi a pufferkiürítést a felhasználói tárhelyre és a virtuális gépre való belépéskor), „full,nosmt” (ugyanaz, mint a „full” + emellett letiltja az SMT/Hyper-Threads funkciót), és „off” (védelem letiltva). Külön javításokat javasoltak a Xen hipervizorhoz és a Qubes operációs rendszerhez.
Az azonosított sebezhetőségi osztály lényege, hogy egyes műveletek más CPU-magokon való végrehajtás után megmaradt adatok másolásához vagy áthelyezéséhez vezetnek az egyik mikroarchitektúra-pufferből a másikba. Az MMIO biztonsági rései lehetővé teszik ezeknek a maradék adatoknak az izolált mikroarchitektúra puffereiből az alkalmazások által látható regiszterekbe vagy CPU pufferekbe történő átvitelét. Három módszert azonosítottak a maradék adatok MMIO-n keresztüli kinyerésére:
- A DRPW (Device Register Partial Write, CVE-2022-21166) bizonyos MMIO-regiszterek írásainak helytelen kezelésével kapcsolatos probléma. Ha az írott adatok mérete kisebb, mint a regiszter mérete, akkor a kitöltési pufferek maradék információi is bemásolódnak a regiszterbe. Ennek eredményeként az a folyamat, amely az MMIO-regiszterbe hiányos írási műveletet kezdeményez, megkaphatja a mikroarchitektúra puffereiben maradt adatokat a többi CPU-magon végzett műveletekből.
- Az SBDS (Shared Buffers Data Sampling, CVE-2022-21125) a kernelhez kötött kitöltési pufferből származó maradék adatok szivárgása, amely az összes kernelre jellemző közbenső pufferek mozgásából ered.
- SBDR (Shared Buffers Data Read, CVE-2022-21123) – a probléma hasonló az SBDS-hez, de abban különbözik, hogy a maradék adatok az alkalmazások számára látható CPU-struktúrákba kerülhetnek. Az SBDS- és SBDR-problémák csak a kliensrendszerek processzorainál és az Intel Xeon E3 szervercsaládnál jelentkeznek.

Forrás: opennet.ru
