Рањивости у еБПФ подсистему Линук кернела

Идентификована је рањивост (ЦВЕ-2021-29154) у еБПФ подсистему, који вам омогућава да покренете руковаоце за праћење, анализу рада подсистема и управљање саобраћајем, који се извршавају унутар Линук кернела у специјалној виртуелној машини са ЈИТ, што омогућава локалног корисника да постигне извршење свог кода на нивоу кернела. Проблем се појављује до издања 5.11.12 (укључиво) и још увек није решен у дистрибуцијама (Дебиан, Убунту, РХЕЛ, Федора, СУСЕ, Арцх). Исправка је доступна као закрпа.

Према истраживачима који су идентификовали рањивост, успели су да развију радни прототип експлоатације за 32- и 64-битне к86 системе, који може да користи непривилеговани корисник. Међутим, Ред Хат напомиње да озбиљност проблема зависи од тога да ли је еБПФ системски позив доступан кориснику. На пример, на РХЕЛ-у и већини других Линук дистрибуција у подразумеваној конфигурацији, рањивост се може искористити ако је БПФ ЈИТ омогућен и корисник има ЦАП_СИС_АДМИН права. Као заобилазно решење, препоручује се да онемогућите БПФ ЈИТ користећи команду: ецхо 0 > /проц/сис/нет/цоре/бпф_јит_енабле

Проблем је узрокован грешком у израчунавању помака за инструкције гранања током процеса генерисања машинског кода ЈИТ компајлера. Посебно, када се генерише инструкције гранања, не узима се у обзир да се помак може променити након проласка кроз фазу оптимизације. Овај недостатак се може користити за генерисање аномалног машинског кода и његово извршавање на нивоу кернела.

Важно је напоменути да ово није једина рањивост у еБПФ подсистему у последње време. Крајем марта идентификоване су још две рањивости у кернелу (ЦВЕ-2020-27170, ЦВЕ-2020-27171), што је омогућило коришћење еБПФ-а за заобилажење заштите од рањивости класе Спецтре, које омогућавају одређивање садржаја меморије кернела. као резултат стварања услова за шпекулативно извршење одређених операција . Спецтре напад захтева присуство одређеног низа команди у привилегованом коду што доводи до спекулативног извршавања инструкција. У еБПФ-у је пронађено неколико начина за генерисање таквих инструкција кроз манипулације са БПФ програмима који се преносе на извршење.

ЦВЕ-2020-27170 рањивост је узрокована манипулацијом показивача у БПФ верификатору која узрокује спекулативне операције за приступ области изван граница бафера. Рањивост ЦВЕ-2020-27171 настаје услед грешке у недостатку целог броја при раду са показивачима, што доводи до спекулативног приступа подацима ван бафера. Ови проблеми су већ решени у издањима кернела 5.11.8, 5.10.25, 5.4.107, 4.19.182 и 4.14.227, а такође су укључени у исправке кернела за већину Линук дистрибуција. Истраживачи су припремили прототип експлоатације који омогућава непривилегованом кориснику да извуче податке из меморије кернела.

Извор: опеннет.ру

Додај коментар