CVE-2022-49124 in Linux
Riassunto
di VulDB • 18/06/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
x86/mce: Soluzione alternativa a un erratum nelle istruzioni di copia rapida delle stringhe
Si può verificare uno scenario raro di panic del kernel quando sono soddisfatte le seguenti condizioni, dovute a un erratum sulle istruzioni di copia rapida delle stringhe:
1) Si verifica un errore non corretto (uncorrected error). 2) Tale errore deve trovarsi nella prima riga di cache di una pagina. 3) Il kernel deve eseguire page_copy dalla pagina immediatamente precedente a quella interessata dall'errore.
Le istruzioni di copia rapida delle stringhe ("REP; MOVS*") potrebbero consumare un errore di memoria non correggibile presente nella riga di cache _subito dopo_ la regione desiderata da copiare, generando così una MCE (Machine Check Exception).
Il bit 0 del registro MSR_IA32_MISC_ENABLE può essere azzerato per disabilitare le istruzioni di copia rapida delle stringhe e prevenire tali controlli macchina spurii. Tuttavia, questa opzione è meno preferibile a causa dell'impatto permanente sulle prestazioni. Considerando che l'avvelenamento della memoria (memory poison) è un evento raro, è desiderabile mantenere abilitate le istruzioni di copia rapida finché non si verifica una MCE.
Intel ha confermato quanto segue: 1. L'erratum del CPU relativo alla copia rapida delle stringhe riguarda solo le generazioni Skylake, Cascade Lake e Cooper Lake.
Uscita diretta dal gestore della MCE (MCE handler): 2) Provoca l'esecuzione completa di "REP; MOVS*" senza perdita o corruzione dei dati. 3) Non provoca il verificarsi di un'altra MCE sulla successiva riga di cache avvelenata a causa di "REP; MOVS*". 4) Riprende l'esecuzione dal punto corretto nel codice. 5) Provoca lo stesso istante che ha innescato la prima MCE, generando immediatamente una seconda MCE per eventuali altri errori di recupero dati recuperabili da software. 6) Non è sicura se non si disabilita la copia rapida delle stringhe, poiché la successiva operazione di copia rapida della stessa regione sullo stesso CPU provocherebbe un PANIC dovuto a MCE.
Ciò dovrebbe mitigare completamente l'erratum, con l'unica limitazione che la copia rapida delle stringhe viene disabilitata sull'hypertread interessato, causando una degradazione delle prestazioni.
Questa soluzione è comunque preferibile rispetto al crash del sistema operativo (OS) su MCE generate per un processo irrilevante a causa degli accessi "REP; MOVS*" in contesto kernel, ad esempio copy_page.
Errori iniettati sulla prima riga di cache di 8 pagine anonime del processo 'proc1' e osservazione della gestione delle MCE da parte di 'proc2' senza panic (uscita diretta).
Senza la correzione, l'host andava in panic nel giro di pochi minuti su un processo 'proc2' casuale a causa dell'accesso kernel tramite copy_page.
[ bp: Correzione dello stile dei commenti + ritocchi minori, rimozione di unlikely() improbabile, miglioramento della leggibilità della funzione quirk. ]
VulDB is the best source for vulnerability data and more expert information about this specific topic.