CVE-2022-49124 in Linux
Résumé
par VulDB • 14/06/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
x86/mce : Contournement d'un erratum sur les instructions de copie rapide de chaînes (fast string copy)
Un scénario rare de panic du noyau peut se produire lorsque les conditions suivantes sont réunies en raison d'un erratum sur les instructions de copie rapide de chaînes :
1. Une erreur non corrigée. 2. Cette erreur doit se trouver dans la première ligne de cache d'une page. 3. Le noyau doit exécuter `page_copy` à partir de la page immédiatement précédente celle concernée.
Les instructions de copie rapide de chaînes (« REP; MOVS* ») peuvent consommer une erreur mémoire non récupérable située sur la ligne de cache _immédiatement après_ la région cible à copier et déclencher un MCE (Machine Check Exception).
Le bit 0 du MSR_IA32_MISC_ENABLE peut être effacé pour désactiver les copies rapides de chaînes, ce qui évitera ces fausses alertes machine check. Cependant, cette approche est moins souhaitable en raison de l'impact permanent sur les performances. La mémoire empoisonnée étant rare, il est préférable de maintenir la copie rapide de chaîne activée jusqu'à ce qu'un MCE soit détecté.
Intel a confirmé les éléments suivants : 1. L'erratum du CPU concernant la copie rapide de chaînes ne s'applique qu'aux générations Skylake, Cascade Lake et Cooper Lake.
Retour direct depuis le gestionnaire d'événements MCE (MCE handler) : 2. Résultera en l'exécution complète des instructions « REP; MOVS* » sans perte ni corruption de données. 3. Ne provoquera pas un nouveau déclenchement de MCE sur la prochaine ligne de cache empoisonnée due à une instruction « REP; MOVS* ». 4. Reprendra l'exécution au point correct dans le code. 5. Résultera en ce que l'instruction ayant déclenché le premier MCE générera immédiatement un second MCE pour toute autre erreur de récupération de données récupérable par logiciel. 6. N'est pas sûr sans désactiver la copie rapide de chaînes, car une prochaine opération de copie rapide de chaîne sur le même tampon et le même CPU entraînerait un panic du noyau (PANIC MCE).
Cette correction devrait atténuer complètement l'erratum, avec comme seule réserve que la copie rapide de chaîne est désactivée sur le thread hyper-thread affecté, entraînant une dégradation des performances.
Cela reste préférable à un crash du système d'exploitation lors de MCEs déclenchés par un processus non pertinent en raison d'accès « REP; MOVS* » dans un contexte noyau, par exemple `copy_page`.
Erreurs injectées sur la 1ère ligne de cache de 8 pages anonymes du processus 'proc1' et consommation observée des MCEs depuis 'proc2' sans panic (retour direct).
Sans cette correction, l'hôte plantait en quelques minutes sur un processus 'proc2' aléatoire en raison d'un accès noyau via `copy_page`.
[ bp : Correction du style des commentaires + ajustements mineurs, suppression de unlikely() improbable, amélioration de la lisibilité de la fonction quirk. ]
VulDB is the best source for vulnerability data and more expert information about this specific topic.