ПолКит рањивост је омогућила да се добије роот приступ на већини Линук дистрибуција

Недавно Куалис објавио вест да је идентификовао рањивост (ЦВЕ-2021-4034) en компонента система полкит (раније ПолициКит), који се користи у дистрибуцијама како би се омогућило непривилегованим корисницима да обављају радње које захтевају повишена права приступа.

Рањивост омогућава непривилегованом локалном кориснику да подигне своје привилегије на роот корисника и стекну потпуну контролу над системом. Проблем је кодног назива ПвнКит и значајан је по томе што ствара радну експлоатацију која ради у подразумеваним поставкама на већини Линук дистрибуција.

Помиње се да проблем постоји у пкекец услужном програму укљученом у ПолКит, који долази са СУИД роот заставицом и дизајниран је за покретање команди са привилегијама других корисника према ПолКит правилима.

Због погрешног поступања са аргументима из командне линије прослеђен на пкекец, а непривилеговани корисник може заобићи аутентификацију и покренути ваш код као роот, без обзира на утврђена правила приступа. За напад, без обзира која су подешавања и ограничења постављена у ПолКит-у, довољно је да је СУИД роот атрибут за извршну датотеку подешен помоћу пкекец услужног програма.

Пкекец не проверава исправност броја аргумената командне линије (аргц) пренетих приликом покретања процеса. Програмери пкекец-а су претпоставили да први унос у низу аргв увек садржи име процеса (пкекец), а други унос је или НУЛЛ или име команде која се извршава преко пкекец-а.

Пошто број аргумената није упоређен са стварним садржајем низа и претпостављено је да је увек већи од 1, ако је празан аргв низ прослеђен процесу, што Линук-ова функција екецве дозвољава, пкекец је третирао НУЛЛ као први аргумент ( процес име), а следеће после је ван меморије бафера, као следећи садржај низа.

Проблем је у томе што је после аргв низа у меморији енвп низ који садржи променљиве окружења. Дакле, са празним низом аргв, пкекец издваја податке о команди која се извршава са повишеним привилегијама из првог елемента низа са променљивим окружења (аргв[1] је постао идентичан енвп[0]), чији садржај може да контролише нападача.

Пошто је примио вредност аргв[1], пкекец покушава да одреди пуну путању до извршне датотеке користећи путање датотеке у ПАТХ и уписује показивач на стринг са пуном путањом назад до аргв[1], што доводи до преписивања вредности прве променљиве окружења такође, пошто је аргв[1] идентичан енвп[0]. Манипулисањем именом прве променљиве окружења, нападач може да замени другу променљиву окружења у пкекец-у, на пример, да замени променљиву окружења „ЛД_ПРЕЛОАД“, што није дозвољено у суид програмима, и да процес учита своју заједничку библиотеку у процесу .

Радни експлоат користи замену променљиве ГЦОНВ_ПАТХ, који се користи за одређивање путање до библиотеке за транскодирање симбола која се динамички учитава када се позове функција г_принтерр(), која у свом коду користи ицонв_опен().

Редефинисањем путање у ГЦОНВ_ПАТХ, нападач може успети да учита не нормалну библиотеку ицонв, већ своју сопствену библиотеку, чији ће драјвери бити покренути током поруке о грешци у фази у којој пкекец још увек ради као роот и пре верификације дозвола за покретање.

Примећује се да, иако је проблем због оштећења меморије, он се може поуздано и више пута користити, без обзира на коришћену хардверску архитектуру.

Подвиг припремљен успешно тестиран на Убунту, Дебиан, Федора и ЦентОС, али се може користити и на другим дистрибуцијама. Оригинални експлоат још увек није јавно доступан, што указује да је тривијалан и да га други истраживачи могу лако поново направити, тако да је важно инсталирати ажурирање хитне исправке што је пре могуће на системима за више корисника.

Полкит је такође доступан за БСД и Соларис системе, али није истражен за експлоатацију. Оно што је познато је да напад не може да се изведе на ОпенБСД, пошто ОпенБСД кернел не дозвољава преношење нулл аргц вредности приликом позивања екецве().

Проблем постоји од маја 2009. године када је додата команда пкекец. Исправка за рањивост у ПолКит-у је и даље доступна као закрпа (верзија поправке није формирана), али пошто су програмери дистрибуције унапред обавештени о проблему, већина дистрибуција је објавила ажурирање у исто време. информација о рањивости.

Коначно ако сте заинтересовани да сазнате више о томе, детаље можете погледати у следећи линк.


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.