Уязвимост от преди повече от 15 години в Netfilter позволи ескалация на привилегиите

Преди няколко дни излезе новината, че в Netfilter е установена уязвимост (подсистема на ядрото на Linux, използвана за филтриране и модифициране на мрежови пакети), която позволява на локален потребител да получи root права в системадори докато сте в изолиран контейнер.

Уязвимостта на CVE-2021-22555 това е проблем, който съществува от ядрото 2.6.19, стартиран преди 15 години и е причинени от грешка в драйверите IPT_SO_SET_REPLACE и IP6T_SO_SET_REPLACE, което причинява препълване на буфера при изпращане на специално декорирани параметри чрез извикване на setockopt в режим compat.

Може би мнозина в този момент ще се чудят как е възможно недостатък в ядрото на Linux да остане незабелязан толкова дълго и отговорът на това е, че въпреки че недостатъкът, който е налице от Linux 2.6.19, уязвимостта е открита чрез код одит, въпреки че кодът C не е възпроизводим, така че не може да бъде използван, тъй като по това време не са намерени необходимите ресурси за ескалиране на привилегиите.

Например поддръжката за непривилегировани потребителски пространства от имена е в ядрото 3.8. Също така някои дистрибуции имат кръпка, която добавя sysctl, за да деактивира непривилегированите пространства на имена на потребители.

При нормални обстоятелства само коренният потребител може да извика compat_setsockopt ()Но необходимите разрешения за извършване на атака те могат да бъдат получени и от непривилегирован потребител на системи с активирани пространства на имена на потребители.

CVE-2021-22555 е 15-годишна уязвимост при запис на стека в Linux Netfilter, която е достатъчно мощна, за да заобиколи всички съвременни смекчаващи мерки и да постигне изпълнение на кода на ядрото.

Като такова е описано, че локален потребител може да създаде контейнер с отделен root потребител и да използва уязвимостта от тамí. Например "потребителски пространства от имена" са включени по подразбиране в Ubuntu и Fedora, но не и в Debian и RHEL.

Тази уязвимост може да бъде използвана чрез частично презаписване на m_list->nextуказател msg_msgструктура и постигане на безплатно след употреба. Това е достатъчно мощно, за да може вашият код на ядрото да работи, заобикаляйки KASLR, SMAP и SMEP.

Също така проблемът възниква във функцията xt_compat_target_from_user () поради неправилно изчисляване на размера на паметта при запазване на структурите на ядрото след преобразуване от 32-битово в 64-битово представяне.

Като такъв се споменава, че грешката позволява запис на четири "нулеви" байта във всяка позиция извън буфера присвоено, ограничено от отместване 0x4C. Поради това се споменава, че тази функция се оказа достатъчна, за да създаде експлойт което позволява да се получат root права: чрез изтриване на указателя m_list-> next в структурата msg_msg бяха създадени условия за достъп до данните след освобождаване на паметта (use-after-free), която след това беше използвана за получаване на информация за адреси и промени в други структури чрез манипулиране на системното повикване msgsnd ().

По отношение на доклада за грешка, както всяка открита уязвимост, това включва процес и отчета, който е направен на разработчиците на ядрото през април, с който след това е коригиран за няколко дни и корекцията, която е включена във всички поддържани дистрибуции, така че информация за грешката може да бъде пусната по-късно.

Проектите Debian, Arch Linux и Fedora вече са генерирали актуализации на пакети. Започвайки с Ubuntu, RHEL и SUSE актуализации са в процес на разработка. Тъй като грешката е сериозна, използваема на практика и позволява да избягате от контейнера, Google оцени откритието си на 10,000 XNUMX долара и удвои наградата на изследователя, който е идентифицирал уязвимостта и за идентифициране на метод за избягване на изолирането на Kubernetes контейнери в клъстера kCTF.

За тестване е подготвен работещ прототип на експлойт което заобикаля защитните механизми KASLR, SMAP и SMEP.

Накрая ако се интересувате да научите повече за това, можете да проверите подробностите В следващия линк.


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

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.