Nakakita ng kahinaan sa Linux kernel tty subsystem

Inilabas ang mga mananaliksik mula sa Google Project Zero team kamakailan sa pamamagitan ng isang post sa blog isang bagong paraan ng pagsasamantala sa mga kahinaan (CVE-2020-29661) sa pagpapatupad ng ioctl handler TIOCSPGRP ng Linux kernel tty subsystem, pati na rin ang mga detalyadong mekanismo ng proteksyon na maaaring humarang sa mga kahinaang ito.

Nabanggit sa post na ang problema ay sanhi ng isang error sa mga setting ng lock, na humahantong sa isang kundisyon ng lahi sa code ng /tty/tty_jobctrl.c, na ginamit upang lumikha ng mga kundisyon upang ma-access ang memorya pagkatapos ng paglulunsad (use-after-free), na pinagsamantalahan ng espasyo ng gumagamit sa pamamagitan ng pagmamanipula gamit ang ioct- sa pamamagitan ng pagtawag sa TIOCSPGRP.

Bilang karagdagan sa impormasyong nai-publish, din isang functional exploit demo ang isinagawa para sa pagtaas ng pribilehiyo sa Debian 10 na may kernel 4.19.0-13-amd64 at hindi rin nag-aalis na maaari itong makaapekto sa iba't ibang mga distribusyon, kung saan siyempre ay ang mga batay sa at nagmula sa Debian.

Marami sa mga indibidwal na diskarte sa pagsasamantala at mga pagpipilian sa pagpapagaan na inilalarawan ko dito ay hindi nobela. Gayunpaman, sa palagay ko sulit na isulat ang mga ito nang magkasama upang ipakita kung paano nakikipag-ugnayan ang iba't ibang mga pagpapagaan sa isang medyo normal na after-free na pagsasamantala.

Ang mga snippet ng code sa post sa blog na ito na nauugnay sa pagsasamantala ay kinuha mula sa nakaraang bersyon 4.19.160, dahil iyon ang batayan ng target na Debian kernel; ang ilang iba pang mga snippet ng code ay mula sa Linux mainline.

Kasabay nito, sa nai-publish na artikulo, ang diin ay hindi gaanong sa pamamaraan ng paglikha ng isang functional na pagsasamantala, ngunit sa kung aling mga tool mayroong sa kernel upang maprotektahan ang iyong sarili laban sa mga ganitong kahinaan.

Nakakadismaya ang konklusyon, dahil nabanggit na ang mga pamamaraan tulad ng pagse-segment ng memorya sa heap at pagkontrol ng access sa memory pagkatapos na ito ay mapalaya ay hindi inilalapat sa pagsasanay dahil humahantong sila sa pagkasira ng pagganap at proteksyon batay sa CFI (Control Flow Integrity), na humaharang sa mga pagsasamantala sa huli. mga yugto ng pag-atake, nangangailangan ng mga pagpapabuti.

Ang isang espesyal na uri ng terminal device ay pseudo-terminals, na ginagamit kapag, halimbawa, nagbukas ka ng terminal application sa isang graphical na kapaligiran o kumonekta sa isang remote na makina sa pamamagitan ng SSH. Habang ang ibang mga terminal device ay konektado sa ilang uri ng hardware, ang magkabilang dulo ng isang pseudo-terminal ay kinokontrol ng espasyo ng user, at ang mga pseudo-terminal ay maaaring malayang nilikha ng user space (nang walang mga pribilehiyo).

Sa tuwing bubuksan ang / dev / ptmx (maikli para sa "pseudo-terminal multiplexer"), kinakatawan ng nagreresultang file descriptor ang bahagi ng device (tinukoy sa dokumentasyon at mga mapagkukunan ng kernel bilang "ang master pseudo-terminal") ng isang device. bagong pseudo terminal.

 Ang kaukulang terminal device (kung saan karaniwang kumokonekta ang isang shell) ay awtomatikong nilikha ng kernel sa ilalim ng / dev / pts / .

Kapag tinitingnan kung ano ang maaaring gumawa ng pagkakaiba sa pangmatagalan, ang diin ay ang paggamit ng mga advanced na static na parser o paggamit ng memory-safe na mga wika tulad ng Rust at C dialect na may pinahabang anotasyon (tulad ng napatunayang C) upang bumuo ng mga checker ng katayuan, mga kandado, mga bagay at payo. Binabanggit din ng mga paraan ng proteksyon ang pagpapagana ng panic_on_oops mode, paggawa ng mga istruktura ng kernel na read-only at paghihigpit sa pag-access sa mga tawag sa system sa pamamagitan ng mga mekanismo tulad ng seccomp.

Ang error na nagdudulot ng problema naayos ito sa Linux kernel noong ika-3 ng Disyembre ng nakaraang taon. Ang problema nagpapakita ng sarili sa mga kernel bago ang bersyon 5.9.13, ngunit karamihan sa mga distribusyon ay naayos na ang problema sa mga update sa kernel package na inaalok noong nakaraang taon.

Ang isang katulad na kahinaan ay binanggit din (CVE-2020-29660) na natagpuan nang sabay-sabay sa pagpapatupad ng TIOCGSID ioctl na tawag, ngunit inalis din kahit saan.

Sa wakas Kung interesado kang malaman ang tungkol dito, maaari mong suriin ang mga detalye Sa sumusunod na link.


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.