A VIA processzorai az asztali konfigurációk szegmensében nem igazán rendelkeznek észrevehető piaci részesedéssel, hiszen ezek a központi egységek speciális piacokat vesznek célba, így többnyire különböző automatákban, ATM-ekben, információs rendszerekben, illetve értékesítést végző konfigurációkban vannak jelen. Ezeknél nincs szükség hatalmas számítási teljesítményre, a biztonság azonban többnyire kiemelten fontos.
A Black Hat 2018 konferencia alkalmával egy biztonságtechnikai kutató, Christopher Domas egy érdekes felfedezésről számolt be: rájött, hogy a VIA C3-as processzorral szerelt rendszereknél, amelyek Linuxot futtatnak, nagyon könnyen lehet rendszergazdai jogosultságot szerezni.
Ehhez mindössze arra van szükség, hogy a felhasználói módban futó Linux parancssorba beírjunk egy egyszerű kódsorozatot, ami a következő: .byte 0x0f, 0x3f – és már meg is kaptuk a rendszergazdai jogkört.De előtte azért van teendő bőven, hogy az említett kód kifejthesse a hatását. Ugyanis első körben engedélyezni kell az alap esetben letiltott 0x0f3f utasítást, ami a VIA C3-as processzorok többségében inaktív. Ehhez az engedélyezéshez alapból root jogkörrel kell rendelkeznünk, ami azért eléggé behatárolja a lehetőségeket. Ha a 0x0f3f utasítás immáron aktív, akkor egy sor egyéb utasítást kell végrehajtania a rendszernek, amelyek a Linux Kernel memóriát manipulálják annak érdekében, hogy root jogkört szerezhessünk. A manipuláció során a kernel memóriavédelmét meg lehet kerülni, mivel ez nem aktív, amikor a RISC processzormag utasításokat hajt végre. Ha ez is kész, indítani kell egy shellt, hogy a root jogosultság megszerzése sikerrel záruljon.
Ennek a „hátsó ajtónak” köszönhetően a ring-2, illetve e felett dolgozó felhasználói folyamatok és alkalmazások könnyedén megkaphatják a ring 0, azaz a root hozzáférést, ha a funkció aktív. A fenti hack egyébként azért működik, mert a VIA C3-as processzorok tartalmaznak egy úgynevezett „árnyékmagot”, ami RISC alapokon nyugszik, feladata pedig a rendszer indítása, működtetése és az x86-os magok kulcsainak tárolása.
Hogy Domas mégis hogyan bukkant rá erre a potenciális hátsó ajtóra? Rengeteg szabadalmat olvasott el, amelyekből megértette, melyik bit felel a funkció aktiválásáért, majd visszafejtette az utasításkészletet, amit a RISC mag használ, végül pedig írt egy assemblert és elkészítette a hátsó ajtót kinyitó kódsort.
A fentebb részletezett funkció egyébként szerepel a VIA egyik dokumentációjában is, ahol leírják, hogyan lehet engedélyezni és milyen lehetőségeket kínál, vagyis alapjában véve egy alaposan dokumentált, ám kevesek által ismert lehetőségről van szó, ami alap esetben inaktív – hibás konfigurálás esetén viszont alapértelmezetten is aktív lehet.































