Vulnerabilitat de Reptar que afecta els processadors Intel

Tavis Ormandy, investigador de seguretat de Google, ha identificat una nova vulnerabilitat (CVE-2023-23583) en els processadors Intel, amb el nom en codi Reptar, que suposa principalment una amenaça per als sistemes de núvol que executen màquines virtuals de diferents usuaris. La vulnerabilitat permet que el sistema es pengi o es bloquegi quan es realitzen determinades operacions en sistemes convidats sense privilegis. Per provar els vostres sistemes, s'ha publicat una utilitat que crea condicions per a la manifestació de vulnerabilitats.

Teòricament, la vulnerabilitat es pot utilitzar per escalar privilegis del tercer a l'anell de protecció zero (CPL0) i escapar d'entorns aïllats, però aquest escenari encara no s'ha confirmat a la pràctica a causa de les dificultats de depuració a nivell microarquitectònic. Una revisió interna a Intel també va mostrar el potencial d'explotació de la vulnerabilitat per augmentar els privilegis en determinades condicions.

Segons l'investigador, la vulnerabilitat està present a les famílies de processadors Intel Ice Lake, Rocket Lake, Tiger Lake, Raptor Lake, Alder Lake i Sapphire Rapids. L'informe d'Intel esmenta que el problema apareix a partir de la 10a generació (Ice Lake) de processadors Intel Core i la tercera generació de processadors Xeon Scalable, així com en els processadors Xeon E/D/W (Ice Lake, Skylake, Haswell, Broadwell). , Skylake, Sapphire Rapids, Emerald Rapids, Cascade Lake, Cooper Lake, Comet Lake, Rocket Lake) i Atom (Apollo Lake, Jasper Lake, Arizona Beach, Alder Lake, Parker Ridge, Snow Ridge, Elkhart Lake i Denverton). La vulnerabilitat en qüestió es va solucionar amb l'actualització de microcodi d'ahir 20231114.

La vulnerabilitat és causada pel fet que, sota determinades circumstàncies de microarquitectura, l'execució de la instrucció "REP MOVSB" està codificada amb un prefix "REX" excessiu, la qual cosa condueix a un comportament indefinit. El problema es va descobrir durant les proves de prefixos redundants, que en teoria haurien de ser ignorats, però a la pràctica van provocar efectes estranys, com ignorar ramificacions incondicionals i trencar l'emmagatzematge del punter a les instruccions xsave i call. Una anàlisi posterior va demostrar que afegir un prefix redundant a la instrucció "REP MOVSB" provoca la corrupció del contingut del buffer ROB (ReOrder Buffer) utilitzat per ordenar instruccions.

Es creu que l'error és causat per un càlcul incorrecte de la mida de la instrucció "MOVSB", que condueix a la violació de l'adreçament de les instruccions escrites a la memòria intermèdia ROB després del MOVSB ​​​​amb un prefix excessiu i el desplaçament. del punter d'instrucció. Aquesta desincronització es pot limitar a la interrupció dels càlculs intermedis amb la restauració posterior de l'estat integral. Però si bloquegeu diversos nuclis o fils SMT alhora, podeu danyar l'estat microarquitectònic prou com per bloquejar-se.

Font: opennet.ru

Afegeix comentari