- 635
- 733
- 15 Янв 2017
Ошибка связана с тем, что разработчики неправильно поняли инструкции в руководствах Intel и AMD.
Linux, Windows, macOS, FreeBSD и некоторые реализации гипервизоров Xen имеют недоработку в дизайне, предоставляющую злоумышленникам возможность в лучшем случае вызвать сбой в работе компьютеров на базе процессоров Intel и AMD, а в худшем - получить доступ к памяти ядра или перехватить контроль над системой.
Уязвимость CVE-2018-8897 может быть проэксплуатирована путем внедрения вредоносного ПО на устройство или авторизованным в системе злоумышленником. Согласно предупреждению специалистов координационого центра CERT, судя по всему, проблема вызвана неправильным пониманием разработчиков из Microsoft, Apple и других компаний некоторых инструкций в руководствах Intel и AMD, в частности, метода, используемого процессорами для обработки определенного исключения.
Речь идет об инструкциях MOV SS и POP SS, которые запрещают все прерывания, включая NMI (немаскируемые прерывания), до тех пор, пока не выполнится следующая команда. Если после применения команды MOV к регистру SS или POP к SS следуют инструкции SYSCALL, SYSENTER, INT 3 и т.д., передающие контроль с текущим уровнем привилегий (< 3) операционной системе, вызывается исключение отказ отладки (#DB), что может привести к неожиданному поведению системы. Таким образом, в определенных обстоятельствах после использования определенных инструкций Intel x86-64 исключение отладки, указывающие на данные в нижнем кольце защиты (для большинства ОС это 0-е кольцо защиты (Ring 0) - ядро ОС, системные драйверы), доступно компонентам ОС с 3-м уровнем привилегий (прикладные программы, запускаемые пользователем). Таким образом атакующий может использовать API операционной системы для доступа к памяти или низкоуровневым функциям ОС.
Уязвимости подвержены решения следующих производителей: Apple, DragonFly BSD Project, FreeBSD Project, ядро Linux, Microsoft, Red Hat, SUSE Linux, Ubuntu, VMware, Xen.
Разработчики уже устранили проблему в ядре Linux с выпуском версий 4.15.14, 4.14.31, 4.9.91, 4.4.125, а также в более ранних ветках 4.1, 3.16 и 3.2. Соответствующие обновления выпустили Для просмотра ссылки Войди