Открих уязвимост в подсистемата tty на ядрото на Linux

Изследователи от екипа на Google Project Zero публикуваха наскоро чрез публикация в блог нов метод за използване на уязвимости (CVE-2020-29661) при внедряването на ioctl манипулатора TIOCSPGRP на Подсистема tty на ядрото на Linux, както и подробни защитни механизми, които биха могли да блокират тези уязвимости.

В публикацията се споменава, че проблемът е причинен от грешка в настройките за заключване, което води до състояние на състезание в кода на /tty/tty_jobctrl.c, което беше използвано за създаване на условия за достъп до паметта след стартиране (use-after-free), използвано от потребителското пространство чрез манипулация с ioct- чрез извикване на TIOCSPGRP.

В допълнение към публикуваната информация, също беше извършена демонстрация на функционален експлоат за ескалация на привилегии в Debian 10 с ядро ​​4.19.0-13-amd64 и което също не изключва, че може да засегне различни дистрибуции, сред които разбира се са тези, базирани и извлечени от Debian.

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

Кодовите фрагменти в тази публикация в блога, които са свързани с експлойта, са взети от предишната версия 4.19.160, тъй като на това се основава целевото ядро ​​на Debian; някои други кодови фрагменти са от основната линия на Linux.

В същото време в публикуваната статия, акцентът не е толкова върху техниката за създаване на функционален експлойт, а върху това кои инструменти има в ядрото за да се предпазите срещу подобни уязвимости.

Заключението е разочароващо, тъй като се споменава, че методи като сегментиране на паметта в хепа и контролиране на достъпа до паметта след нейното освобождаване не се прилагат на практика, тъй като водят до влошаване на производителността и защита, базирана на CFI (Control Flow Integrity), която блокира експлойтите в по-късните етапи на атака, изисква подобрения.

Специален тип терминално устройство са псевдотерминалите, които се използват, когато например отваряте терминално приложение в графична среда или се свързвате към отдалечена машина чрез SSH. Докато други терминални устройства са свързани към някакъв вид хардуер, двата края на псевдотерминал се контролират от потребителско пространство и псевдотерминалите могат да бъдат свободно създадени от потребителското пространство (без привилегии).

Всеки път, когато се отвори / dev / ptmx (съкратено от "псевдотерминален мултиплексор"), полученият файлов дескриптор представлява страната на устройството (посочена в документацията и източниците на ядрото като "главният псевдотерминал") на устройството. new pseudo -терминал.

 Съответното терминално устройство (към което обикновено се свързва шел) се създава автоматично от ядрото под /dev/pts/ .

Когато разглеждаме какво би могло да направи разлика в дългосрочен план, акцентът е върху използването на усъвършенствани статични анализатори или използването на безопасни за паметта езици като Rust и C диалекти с разширени анотации (като доказан C) за изграждане на проверки на състоянието, заключвания, обекти и указатели. Методите за защита също споменават активиране на режим panic_on_oops, което прави структурите на ядрото само за четене и ограничава достъпа до системни повиквания чрез механизми като seccomp.

Грешката, причиняваща проблема беше коригиран в ядрото на Linux на 3 декември миналата година. Проблемът проявява се в ядрата преди версия 5.9.13, но повечето дистрибуции отстраниха проблема в актуализациите на пакета на ядрото, които бяха предложени миналата година.

Също така се споменава подобна уязвимост (CVE-2020-29660), която беше открита едновременно при внедряването на TIOCGSID ioctl повикването, но също беше премахната навсякъде.

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


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

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

*

*

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