Рањивост у подсистему језгра Линук Нетфилтер

Рањивост (ЦВЕ-2021-22555) је идентификована у Нетфилтер-у, подсистему Линук кернела који се користи за филтрирање и модификовање мрежних пакета, који омогућава локалном кориснику да добије роот привилегије на систему, укључујући и док је у изолованом контејнеру. Радни прототип експлоатације који заобилази механизме заштите КАСЛР, СМАП и СМЕП је припремљен за тестирање. Истраживач који је открио рањивост добио је награду од 20 долара од Гугла за идентификацију методе за заобилажење изолације Кубернетес контејнера у кЦТФ кластеру.

Проблем постоји још од кернела 2.6.19, објављеног пре 15 година, и узрокован је грешком у руковаоцима ИПТ_СО_СЕТ_РЕПЛАЦЕ и ИП6Т_СО_СЕТ_РЕПЛАЦЕ која узрокује преливање бафера приликом слања посебно форматираних параметара путем сетсоцкопт позива у режиму компатибилности. У нормалним околностима, само роот корисник може да упути позив цомпат_сетсоцкопт(), али привилегије потребне за извршење напада такође може добити непривилеговани корисник на системима са омогућеном подршком за корисничке просторе имена.

Корисник може да креира контејнер са засебним роот корисником и одатле искористи рањивост. На пример, „простори корисничких имена“ су подразумевано омогућени на Убунту и Федори, али нису омогућени на Дебиан-у и РХЕЛ-у. Закрпа која поправља рањивост је усвојена у Линук кернел 13. априла. Дебиан, Арцх Линук и Федора пројекти су већ генерисали ажурирања пакета. У Убунту, РХЕЛ и СУСЕ, ажурирања су у припреми.

Проблем се јавља у функцији кт_цомпат_таргет_фром_усер() због нетачног израчунавања величине меморије при чувању структура кернела након конверзије са 32-битног на 64-битни приказ. Грешка омогућава да се четири нулта бајта упишу на било коју позицију изван додељеног бафера ограниченог офсетом 0к4Ц. Испоставило се да је ова функција довољна да се направи експлоат који је омогућио добијање роот права – брисањем показивача м_лист->нект у структури мсг_мсг створени су услови за приступ подацима након ослобађања меморије (усе-афтер-фрее), што је затим коришћен за добијање информација о адресама и променама у другим структурама кроз манипулацију системским позивом мсгснд().

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

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