Nel kernel Linux 6.2 è stata identificata una vulnerabilità (CVE-2023-1998) che provoca la disattivazione della protezione contro gli attacchi di tipo Spectre v2, i quali consentono l'accesso alla memoria di altri processi eseguiti in diversi thread SMT o Hyper-Threading, ma su un unico core fisico della CPU. La vulnerabilità può essere utilizzata, tra l'altro, per organizzare perdite di dati tra macchine virtuali nei sistemi cloud. Il problema colpisce esclusivamente il kernel Linux 6.2 ed è causato da un'implementazione scorretta delle ottimizzazioni progettate per ridurre il carico significativo durante l'implementazione della protezione contro Spectre v2. La vulnerabilità è stata corretta nel ramo sperimentale del kernel Linux 6.3.
Nello spazio utente, per proteggersi dagli attacchi di tipo Spectre, i processi possono disattivare selettivamente l'esecuzione speculativa delle istruzioni tramite prctl PR_SET_SPECULATION_CTRL o utilizzare il filtraggio delle chiamate di sistema sulla base del meccanismo seccomp. Secondo i ricercatori che hanno identificato il problema, l'ottimizzazione scorretta nel kernel 6.2 ha lasciato senza adeguata protezione macchine virtuali almeno un importante fornitore di servizi cloud, nonostante l'attivazione della modalità di blocco degli attacchi spectre-BTI tramite prctl. La vulnerabilità si manifesta anche su normali server con il kernel 6.2, durante il cui avvio è utilizzata l'impostazione "spectre_v2=ibrs.
La sostanza della vulnerabilità è che, nella scelta delle modalità di protezione IBRS o eIBRS, le ottimizzazioni introdotte disattivavano l'uso del meccanismo STIBP (Single Thread Indirect Branch Predictors), necessario a bloccare le perdite durante l'applicazione della tecnologia della multithreading simultanea (SMT o Hyper-Threading). In questo caso, la protezione dalle perdite tra i thread è assicurata solo dalla modalità eIBRS, ma non dalla modalità IBRS, poiché in quest'ultima il bit IBRS, che fornisce protezione dalle perdite tra kernel logici, viene azzerato al ritorno del controllo nello spazio utente, rendendo i thread nello spazio utente vulnerabili agli attacchi di tipo Spectre v2.
Fonte: opennet.ru
