Ang mga kahinaan sa Linux kernel ay malayuang pinagsamantalahan sa pamamagitan ng Bluetooth

Ang isang kahinaan (CVE-2022-42896) ay natukoy sa Linux kernel, na maaaring magamit upang ayusin ang remote code execution sa kernel level sa pamamagitan ng pagpapadala ng isang espesyal na idinisenyong L2CAP packet sa pamamagitan ng Bluetooth. Bilang karagdagan, ang isa pang katulad na isyu ay natukoy (CVE-2022-42895) sa L2CAP handler, na maaaring humantong sa pagtagas ng mga nilalaman ng memorya ng kernel sa mga packet na may impormasyon sa pagsasaayos. Ang unang kahinaan ay lumalabas mula Agosto 2014 (kernel 3.16), at ang pangalawa mula noong Oktubre 2011 (kernel 3.0). Ang mga kahinaan ay natugunan sa Linux kernel releases 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154, at 5.15.78. Maaari mong subaybayan ang mga pag-aayos sa mga pamamahagi sa mga sumusunod na pahina: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Upang ipakita ang posibilidad na magsagawa ng malayuang pag-atake, ang mga prototype na pagsasamantala ay nai-publish na gumagana sa Ubuntu 22.04. Upang magsagawa ng isang pag-atake, ang umaatake ay dapat nasa saklaw ng Bluetoothβ€”hindi kinakailangan ang paunang pagpapares, ngunit dapat na aktibo ang Bluetooth sa computer. Para sa isang pag-atake, sapat na malaman ang MAC address ng device ng biktima, na maaaring matukoy sa pamamagitan ng pag-sniff o, sa ilang device, kinakalkula batay sa Wi-Fi MAC address.

Ang unang kahinaan (CVE-2022-42896) ay sanhi ng pag-access sa isang nakalaya na memory area (use-after-free) sa pagpapatupad ng l2cap_connect at l2cap_le_connect_req function - pagkatapos gumawa ng channel sa pamamagitan ng new_connection callback, hindi naitakda ang lock para dito, ngunit isang timer ang itinakda (__set_chan_timer ), sa pag-expire ng timeout, tinawagan ang l2cap_chan_timeout function at i-clear ang channel nang hindi sinusuri ang pagkumpleto ng trabaho sa channel sa l2cap_le_connect* function.

Ang default na timeout ay 40 segundo at ipinapalagay na ang isang kondisyon ng karera ay hindi maaaring mangyari sa ganoong pagkaantala, ngunit ito ay naging dahil sa isa pang error sa SMP handler, posible na makamit ang isang instant na tawag sa timer at makamit ang isang kondisyon ng lahi. Ang isang problema sa l2cap_le_connect_req ay maaaring humantong sa isang kernel memory leak, at sa l2cap_connect maaari itong humantong sa pag-overwrite sa mga nilalaman ng memorya at pag-execute ng code nito. Ang unang uri ng pag-atake ay maaaring isagawa gamit ang Bluetooth LE 4.0 (mula noong 2009), ang pangalawa kapag gumagamit ng Bluetooth BR/EDR 5.2 (mula noong 2020).

Ang pangalawang kahinaan (CVE-2022-42895) ay sanhi ng natitirang memory leak sa l2cap_parse_conf_req function, na maaaring magamit upang malayuang makakuha ng impormasyon tungkol sa mga pointer sa mga istruktura ng kernel sa pamamagitan ng pagpapadala ng mga espesyal na ginawang kahilingan sa pagsasaayos. Ginamit ng function na l2cap_parse_conf_req ang istraktura ng l2cap_conf_efs, kung saan hindi pa nasimulan ang inilalaan na memorya at sa pamamagitan ng pagmamanipula sa flag ng FLAG_EFS_ENABLE posible na isama ang lumang data mula sa stack sa packet. Ang problema ay lilitaw lamang sa mga system kung saan ang kernel ay binuo gamit ang CONFIG_BT_HS na opsyon (hindi pinagana bilang default, ngunit pinagana sa ilang mga distribusyon, tulad ng Ubuntu). Ang matagumpay na pag-atake ay nangangailangan din ng pagtatakda ng HCI_HS_ENABLED parameter sa pamamagitan ng interface ng pamamahala sa true (hindi ginagamit bilang default).

Pinagmulan: opennet.ru

Magdagdag ng komento