Linux-ytimen haavoittuvuuksia hyödynnetään etäyhteydellä Bluetoothin kautta

Linux-ytimessä on havaittu haavoittuvuus (CVE-2022-42896), jota voidaan mahdollisesti käyttää koodin etäsuorittamisen järjestämiseen ydintasolla lähettämällä erityisesti suunniteltu L2CAP-paketti Bluetoothin kautta. Lisäksi L2022CAP-käsittelijässä on havaittu toinen samanlainen ongelma (CVE-42895-2), joka voi johtaa ytimen muistin sisällön vuotamiseen määritystietoja sisältävissä paketeissa. Ensimmäinen haavoittuvuus on ilmaantunut elokuusta 2014 lähtien (ydin 3.16) ja toinen lokakuusta 2011 lähtien (ydin 3.0). Haavoittuvuudet on korjattu Linux-ytimen julkaisuissa 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154 ja 5.15.78. Voit seurata korjauksia jakeluissa seuraavilta sivuilta: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Etähyökkäyksen mahdollisuuden osoittamiseksi on julkaistu prototyyppihyödykkeitä, jotka toimivat Ubuntu 22.04:ssä. Hyökkäyksen suorittaminen edellyttää, että hyökkääjä on Bluetoothin kantaman sisällä – esipariliitosta ei vaadita, mutta Bluetoothin on oltava aktiivinen tietokoneessa. Hyökkäykseen riittää, että tietää uhrin laitteen MAC-osoite, joka voidaan määrittää haistelemalla tai joissakin laitteissa laskea Wi-Fi MAC-osoitteen perusteella.

Ensimmäinen haavoittuvuus (CVE-2022-42896) johtuu jo vapautetun muistialueen (use-after-free) käyttämisestä l2cap_connect- ja l2cap_le_connect_req-toimintojen toteutuksessa - kun kanava oli luotu new_connection-takaisinkutsun kautta, lukkoa ei asetettu sitä varten, mutta ajastin asetettiin (__set_chan_timer ), aikakatkaisun umpeuduttua kutsuen l2cap_chan_timeout-funktiota ja tyhjentäen kanavan tarkistamatta kanavan työn valmistumista l2cap_le_connect*-funktioissa.

Oletusaikakatkaisu on 40 sekuntia ja oletettiin, että kilpailutilanne ei voinut syntyä tällaisella viiveellä, mutta kävi ilmi, että toisen SMP-käsittelijän virheen vuoksi oli mahdollista saavuttaa välitön kutsu ajastimeen ja saavuttaa kilpailun kunto. Ongelma tiedostossa l2cap_le_connect_req voi johtaa ytimen muistivuotoon, ja l2cap_connectissa se voi johtaa muistin sisällön päällekirjoittamiseen ja sen koodin suorittamiseen. Ensimmäinen hyökkäystyyppi voidaan suorittaa Bluetooth LE 4.0:lla (vuodesta 2009), toinen Bluetooth BR/EDR 5.2:lla (vuodesta 2020).

Toinen haavoittuvuus (CVE-2022-42895) johtuu jäännösmuistivuodosta l2cap_parse_conf_req-funktiossa, jota voidaan käyttää etäältä hankkimaan tietoja ytimen rakenteita osoittavista osoittimista lähettämällä erityisesti muotoiltuja määrityspyyntöjä. Funktio l2cap_parse_conf_req käytti rakennetta l2cap_conf_efs, jolle varattu muisti ei ollut esialustettu ja FLAG_EFS_ENABLE-lippua manipuloimalla oli mahdollista sisällyttää vanhaa dataa pinosta pakettiin. Ongelma ilmenee vain järjestelmissä, joissa ydin on rakennettu CONFIG_BT_HS-vaihtoehdolla (oletusarvoisesti poissa käytöstä, mutta käytössä joissakin jakeluissa, kuten Ubuntussa). Onnistunut hyökkäys vaatii myös HCI_HS_ENABLED-parametrin asettamisen hallintaliittymän kautta arvoon true (ei ole oletuksena käytössä).

Lähde: opennet.ru

Lisää kommentti