CVE-2022-49124 in Linux
Сводка
по VulDB • 14.06.2026
В ядре Linux устранена следующая уязвимость:
x86/mce: Обход ошибки (erratum) в инструкциях быстрого копирования строк
Редкий сценарий паники ядра может возникнуть при соблюдении следующих условий, вызванных ошибкой реализации в инструкциях быстрого копирования строк:
1. Происходит некорректируемая ошибка памяти. 2. Эта ошибка находится в первой кэш-линии страницы. 3. Ядро должно выполнять функцию `page_copy` для страницы, непосредственно предшествующей той странице, где обнаружена ошибка.
Инструкции быстрого копирования строк («REP; MOVS*») могут потреблять некорректируемую ошибку памяти из кэш-линии, следующей _сразу за_ целевым регионом для копирования, и вызывать машинную проверку ошибок (MCE).
Бит 0 регистра MSR_IA32_MISC_ENABLE может быть сброшен для отключения быстрого копирования строк, что позволит избежать подобных ложных срабатываний машинной проверки. Однако этот подход менее предпочтителен из-за постоянного снижения производительности. Учитывая редкость появления «отравленной» памяти (memory poison), целесообразно сохранять быстрое копирование строк включенным до момента фиксации события MCE.
Компания Intel подтвердила следующее: 1. Ошибка процессора, связанная с быстрым копированием строк, применима только к поколениям Skylake, Cascade Lake и Cooper Lake.
Непосредственный возврат из обработчика MCE: 2. Приведет к полному выполнению инструкции «REP; MOVS*» без потери или повреждения данных. 3. Не приведет к повторному срабатыванию другого события MCE на следующей отравленной кэш-линии в результате выполнения «REP; MOVS*». 4. Позволит возобновить выполнение кода с правильной точки. 5. Приведет к тому, что та же самая инструкция, вызвавшая исходное событие MCE, немедленно спровоцирует второе событие MCE при возникновении любых других ошибок выборки данных, поддающихся программному восстановлению (software recoverable). 6. Не является безопасной мерой без отключения быстрого копирования строк, так как следующее быстрое копирование той же области буфера на том же процессоре приведет к панике ядра (PANIC MCE).
Данное решение должно полностью устранить последствия ошибки реализации, за исключением того обстоятельства, что быстрое копирование строк будет отключено для затронутого гиперпотока, что вызовет снижение производительности.
Это все же лучше, чем падение операционной системы из-за событий MCE, возникающих в контексте нерелевантного процесса вследствие доступа «REP; MOVS*» в контексте ядра (например, при вызове `copy_page`).
Внедренные ошибки на первой кэш-линии 8 анонимных страниц процесса 'proc1' и наблюдаемое потребление события MCE процессом 'proc2' без паники системы (осуществлен прямой возврат).
Без данного исправления хост падал в течение нескольких минут из-за случайного процесса 'proc2', вызванного доступом ядра через `copy_page`.
[ bp: Исправление стиля комментариев + мелкие правки, удаление маловероятной проверки unlikely(), улучшение читаемости функции обхода ошибки (quirk). ]
If you want to get best quality of vulnerability data, you may have to visit VulDB.