Ang isang kahinaan ay nakilala sa GDM

Isang security researcher ni GitHub ipinaalam ito kamakailan lamang nakilala mo ang isang kahinaan (CVE-2020-16125) sa GNOME Display Manager (GDM), na responsable para sa pagpapakita ng login screen.

Pinagsama sa isa pang kahinaan sa serbisyo sa pagsubaybay sa account (mga account-daemon), Pinapayagan ng problema ang code na tumakbo bilang ugat.  Ang kahinaan ay naiugnay sa maling paglunsad ng paunang pag-configure ng utility kung imposibleng i-access ang serbisyo ng daemon ng account sa pamamagitan ng DBus.

Tungkol sa kahinaan

Maaaring mag-crash ng isang hindi sikat na gumagamit ang proseso ng mga account-daemon o mabitin, ano ang lilikha ng mga kundisyon para sa gnome-paunang-setup na utility na patakbuhin mula sa GDM, kung saan ang isang bagong gumagamit ay maaaring magparehistro bilang isang miyembro ng sudo group, iyon ay, may kakayahang magpatakbo ng mga programa bilang root.

Karaniwan, Tumawag ang GDM ng gnome-paunang-setup upang maitakda ang unang gumagamit kung walang mga account sa system. Ang pagpapatunay ng pagkakaroon ng mga account ay ginagawa sa pamamagitan ng pakikipag-ugnay sa mga account-daemon. Kung nabigo ang tinukoy na proseso, ipinapalagay ng GDM na nawawala ang mga account at sinisimulan ang paunang proseso ng pag-set up.

Natukoy ng mananaliksik ang dalawang paraan upang maantala ang proseso ng mga daemon-account- Ang una (CVE-2020-16126) ay dahil sa maling pag-reset ng pribilehiyo at ang pangalawa (CVE-2020-16127) error habang pinoproseso ang isang ".pam_en environment" na file.

Bukod dito, isa pang kahinaan ang natagpuan sa mga daemon-account (CVE-2018-14036) sanhi ng maling mga pag-check ng landas ng file at pinapayagan ang nilalaman ng di-makatwirang mga file na mabasa sa system.

Ang mga kahinaan sa mga account-daemon ay sanhi ng mga pagbabago na ginawa ng mga developer ng Ubuntu at hindi lilitaw sa pangunahing mga account-daemon code ng proyekto na FreeDesktop at ang pakete ng Debian.

Ang isyu ng CVE-2020-16127 ay naroroon sa isang patch na idinagdag sa Ubuntu na nagpapatupad ng is_in_pam_en environment function, na binabasa ang mga nilalaman ng .pam_en environment file mula sa direktoryo sa bahay ng gumagamit. Kung maglalagay ka ng isang simbolikong link sa / dev / zero sa halip ng file na ito, ang proseso ng daemon ng account ay nakabitin sa walang katapusang mga operasyon na binasa at huminto sa pagtugon sa mga kahilingan sa pamamagitan ng DBus.

Ito ay hindi karaniwan para sa isang kahinaan sa isang modernong operating system na napakadali na pagsamantalahan. Sa ilang mga okasyon, nagsulat ako ng libu-libong mga linya ng code upang pagsamantalahan ang isang kahinaan. 

Karamihan sa mga modernong pagsasamantala ay nagsasangkot ng mga kumplikadong trick, tulad ng paggamit ng isang kahinaan sa katiwalian ng memorya upang masira ang mga pekeng bagay sa tambak, o palitan ang isang file ng isang symlink sa microsecond na katumpakan upang pagsamantalahan ang isang kahinaan sa TOCTOU. 

Kaya't sa mga araw na ito ay medyo bihirang makahanap ng isang kahinaan na hindi nangangailangan ng mga kasanayan sa pag-cod upang mapagsamantalahan. Sa palagay ko ay madaling maunawaan ang kahinaan, kahit na wala kang dating kaalaman sa kung paano gumagana o karanasan ang Ubuntu sa pananaliksik sa seguridad.

Ang kahinaan ng CVE-2020-16126 ay sanhi ng isa pang patch na i-reset ang mga pribilehiyo ng kasalukuyang gumagamit habang pinoproseso ang ilang mga tawag sa DBus (halimbawa, org.freedesktop.Accounts.User.SetLanguage).

Karaniwang tumatakbo ang proseso ng daemon ng account bilang ugat, na pumipigil sa isang normal na gumagamit mula sa pagpapadala ng mga signal.

Ngunit salamat sa idinagdag na patch, maaaring i-reset ang mga pribilehiyo ng proseso at maaaring wakasan ng gumagamit ang prosesong ito sa pamamagitan ng pagpapadala ng isang senyas. Upang magsagawa ng isang pag-atake, lumikha lamang ng mga kundisyon upang alisin ang mga pribilehiyo (RUID) at magpadala ng isang SIGSEGV o SIGSTOP signal sa proseso ng daemon ng account.

Tinatapos ng gumagamit ang grapikong sesyon at pumunta sa text console (Ctrl-Alt-F1).
Matapos ang session ng grapiko ay nagtatapos, sinusubukan ng GDM na ipakita ang screen ng pag-login, ngunit nag-hang kapag sinusubukang makakuha ng isang tugon mula sa mga account-daemon.

Ang mga signal ng SIGSEGV at SIGCONT ay ipinapadala mula sa console sa proseso ng daemon ng account, na naging sanhi nito upang mag-hang.

Maaari ka ring magpadala ng mga signal bago lumabas ng graphic session, ngunit dapat mo itong gawin nang may pagkaantala upang magkaroon ng oras upang tapusin ang session at bago maipadala ang signal, nagkaroon ng oras ang GDM upang magsimula.

Nabigo ang kahilingan sa daemon ng mga account sa GDM at tinawag ng GDM ang utility ng gnome-paunang pag-setup, na kung saan ang interface ay sapat na upang lumikha ng isang bagong account.

Ang kahinaan ay naayos sa GNOME 3.36.2 at 3.38.2. Ang pagsasamantala sa kahinaan ay nakumpirma sa Ubuntu at mga derivatives nito.

Fuente: https://securitylab.github.com


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.