Scoperta una grave falla in HyperThreading su Skylake e Kaby Lake

Scoperta una grave falla in HyperThreading su Skylake e Kaby Lake

Scoperta dagli sviluppatori del linguaggio OCaml una problematica che porta, in specifiche condizioni, ad un comportamento non coerente del sistema quando è abilitato HyperThreading su processori Skylake e Kaby Lake.

di pubblicata il , alle 09:21 nel canale Processori
IntelSkylakeKaby Lake
 

Una falla nell'implementazione della tecnologia HyperThreading sui processori Intel Skylake e Kaby Lake è stata scoperta da alcuni sviluppatori del linguaggio OCaml, che hanno riferito il fatto agli sviluppatori del progetto Debian. Intel e i partner produttori di schede madri sono al lavoro su una soluzione, ma per il momento è consigliabile disattivare la funzionalità sui processori che ne sono dotati.

Il problema, che coinvolge tutte le declinazioni dei processori Skylake e Kaby Lake incluse le linee Xeon, è descritto dall'errata SKZ7/SKW144/SKL150/SKX150/KBL095/KBW095, che recita così (come riportato sulla mailing list di Debian):

Errata: SKZ7/SKW144/SKL150/SKX150/KBL095/KBW095 - Brevi cicli che usano i registri AH/BH/CH/DH possono causare un comportamento imprevedibile del sistema.

Problema: in condizioni micro-architetturali complesse, brevi cicli di meno di 64 istruzioni che utilizzano i registri AH, BH, CH o DH così come i loro equivalenti più ampi (ad es. RAX, EAX o AX per AH) possono causare un comportamento imprevedibile del sistema. Questo può avvenire solo quando entrambi i processori logici sullo stesso processore fisico sono attivi.

Implicazione: a causa di questo erratum, il sistema potrebbe dare vita a comportamenti imprevedibili.

Partendo dal presupposto che l'informatica è (o dovrebbe essere) una scienza deterministica e che introdurre non-determinismo può portare a problemi di varia gravità, tra cui anche la perdita dei dati, al momento non esistono ancora soluzioni universali e definitive al problema. Il suggerimento è quello di disattivare del tutto la funzionalità HyperThreading, in modo da evitare in toto che si possa verificare la situazione descritta dall'errata.

Se, infatti, Intel ha rilasciato un aggiornamento del microcodice che risolve il problema per alcuni processori Skylake (nello specifico, i modelli 78 e 94 con stepping 3), non ci sono attualmente soluzioni per gli altri modelli. Per ottenere una soluzione è necessario attendere che venga rilasciato dal produttore della scheda madre un aggiornamento del BIOS/UEFI che risolva gli errata KBL095 e KBW095 nel caso dei processori Kaby Lake e SKW144, SKL150, SKX150 e SK27 per i processori Skylake. Alcuni aggiornamenti sono già in fase di rilascio, mentre altri saranno rilasciati in futuro.

È consigliabile, per chiunque possieda un processore con HyperThreading e architettura Skylake o Kaby Lake, seguire attivamente gli aggiornamenti del BIOS/UEFI della propria scheda madre e installare le patch non appena queste vengono rilasciate.

8 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Micene.127 Giugno 2017, 09:35 #1
ma ha scritto imprevedibile nn perche nn sia deterministica, ma perche non lo sa neanche lui che puo succedere
fraquar27 Giugno 2017, 09:40 #2
Quindi per l'utente comune nessun problema, come sempre.
devil_mcry27 Giugno 2017, 09:42 #3
Originariamente inviato da: Micene.1
ma ha scritto imprevedibile nn perche nn sia deterministica, ma perche non lo sa neanche lui che puo succedere


Potrebbero scrivere in concorrenza quei registri, diventa non deterministica visto che il dato cambia dal contesto e il programma fa cosa vuole...
ninja75027 Giugno 2017, 11:10 #4
e dopo il bug del pentium 60...
Micene.127 Giugno 2017, 11:10 #5
Originariamente inviato da: devil_mcry
Potrebbero scrivere in concorrenza quei registri, diventa non deterministica visto che il dato cambia dal contesto e il programma fa cosa vuole...


ma si parla sempre di programmi per cui nn fa cosa vuole ma segue le sue istruzioni...in questo caso sbagliate....
devil_mcry27 Giugno 2017, 11:15 #6
Originariamente inviato da: Micene.1
ma si parla sempre di programmi per cui nn fa cosa vuole ma segue le sue istruzioni...in questo caso sbagliate....


No, sono 2 thread di programmi diversi che si sminchiano i registri a caso, per quel che sembra. Non è deterministico il comportamento perché l'istruzione X non segue il flusso che la precede

Se te setti 1 in un registro e questo a caso prende un numero diverso, che numero ti trovi dopo? Non lo sai, quindi non è deterministico...
floc27 Giugno 2017, 11:41 #7
ora come ora probabilmente il problema coinvolge un limitatissimo numero di scenari di calcolo complesso. Il problema sarebbe se qualcuno riuscisse a sfruttare una falla del genere per scopi malevoli.
calabar27 Giugno 2017, 13:56 #8
@floc
Esattamente. Probabilmente questa falla non è un grosso problema nell'utilizzo comune, altrimenti sarebbe saltata fuori ben prima. Certo, può essere comunque inaccettabile in certi contesti critici.
Il vero problema è se questo comportamento anomalo possa essere sfruttato per violare la macchina.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^