В GDM е идентифицирана уязвимост

Изследовател на сигурността от GitHub го направи известен наскоро установили сте уязвимост (CVE-2020-16125) в GNOME Display Manager (GDM), който е отговорен за показване на екрана за вход.

В комбинация с друга уязвимост в услугата за проследяване на акаунти (акаунти-демон), проблемът позволява на кода да работи като root.  Уязвимостта е свързана с неправилно стартиране на помощната програма за първоначална конфигурация, ако е невъзможно да се получи достъп до услугата демон на акаунта чрез DBus.

Относно уязвимостта

Непривилегирован потребител може да срине процеса на демона на акаунти или затвори, какво ще създаде условията за помощната програма gnome-Initial-Setup да се стартира от GDM, чрез която нов потребител може да се регистрира като член на sudo групата, т.е. да има възможност да стартира програми като root.

Обикновено, GDM извиква gnome-Initial-setup, за да настрои първия потребител ако в системата няма акаунти. Проверката на съществуването на акаунти се извършва чрез свързване с акаунти-демон. Ако посоченият процес се провали, GDM приема, че акаунтите липсват и стартира първоначалния процес на конфигуриране.

Изследователят идентифицира два начина за нарушаване на процеса на демонови акаунти- Първият (CVE-2020-16126) се дължи на неправилно нулиране на привилегиите и вторият (CVE-2020-16127) грешка при обработка на файл „.pam_environment“.

Освен това, беше открита друга уязвимост в демо-акаунти (CVE-2018-14036) причинени от неправилни проверки на пътя на файла и позволяващи четене на съдържанието на произволни файлове в системата.

Уязвимостите в account-daemon са причинени от промени, направени от разработчиците на Ubuntu и не се появяват в основния код-демонов код на проекта FreeDesktop и пакета Debian.

Изданието CVE-2020-16127 присъства в кръпка, добавена в Ubuntu, която реализира функцията is_in_pam_environment, която чете съдържанието на файла .pam_environment от домашната директория на потребителя. Ако поставите символна връзка към / dev / zero вместо този файл, процесът на демона на акаунта виси при безкрайни операции за четене и спира да отговаря на заявки чрез DBus.

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

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

Така че в наши дни е сравнително рядко да се намери уязвимост, която не изисква умения за кодиране, за да се използва. Също така мисля, че уязвимостта е лесна за разбиране, дори ако нямате предварителни познания за това как работи Ubuntu или опит в изследванията на сигурността.

Уязвимостта на CVE-2020-16126 се причинява от друга корекция което нулира привилегиите на текущия потребител, докато обработва някои DBus повиквания (например org.freedesktop.Accounts.User.SetLanguage).

Процесът на демона на акаунта работи нормално като root, което пречи на нормален потребител да изпраща сигнали.

Но благодарение на добавения пластир, привилегиите на процеса могат да бъдат нулирани и потребителят може да приключи този процес чрез изпращане на сигнал. За да извършите атака, просто създайте условията за премахване на привилегии (RUID) и изпратете сигнал SIGSEGV или SIGSTOP към процеса на демона на акаунта.

Потребителят завършва графичната сесия и отива към текстовата конзола (Ctrl-Alt-F1).
След приключване на графичната сесия GDM се опитва да покаже екрана за вход, но увисва, когато се опитва да получи отговор от демона акаунти.

Сигналите SIGSEGV и SIGCONT се изпращат от конзолата към процеса на демона на акаунта, което го кара да виси.

Можете също да изпращате сигнали преди да излезете от графичната сесия, но трябва да го направите със закъснение, за да имате време да завършите сесията и преди сигналът да бъде изпратен, GDM е имал време да стартира.

Заявката към демона за акаунти в GDM се проваля и GDM извиква помощната програма gnome-Initial-setup, в чийто интерфейс е достатъчно да се създаде нов акаунт.

Уязвимостта е поправена в GNOME 3.36.2 и 3.38.2. Експлоатацията на уязвимостта е потвърдена в Ubuntu и нейните производни.

Fuente: https://securitylab.github.com


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

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

*

*

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