Linuxi ydas on tuvastatud haavatavus (CVE-2022-42896), mida saab potentsiaalselt kasutada kaugkoodi täitmise korraldamiseks ydas tasemel, saates spetsiaalselt kujundatud L2CAP-pakette Bluetoothi kaudu. Samuti on tuvastatud veel üks sarnane probleem (CVE-2022-42895) L2CAP-i töötlejas, mis võib viia ydas mälu sisu leket konfigureerimisandmetes. Esimene haavatavus on esinenud alates augustist 2014 (ydas 3.16) ja teine alates oktoobrist 2011 (ydas 3.0). Haavatavused on kõrvaldatud ydas 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 versioonides. Paranduste jälgimiseks jaotusversioonides saab minna järgmistele lehekülgedele: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.
Ette näidata kaugoperatsiooni võimalusi, on avaldatud prototüübid eksploitide jaoks, mis töötavad Ubuntu 22.04-s. Rünnaku läbiviimiseks peab ründaja olema Bluetoothi ulatuses — eelnevat paarimist ei nõuta, kuid arvutis peab olema Bluetooth aktiivne. Rünnaku jaoks on piisav teada kannatava seadme MAC-aadressi, mida saab kindlaks teha snifimise teel või mõnel seadmest tulenevalt Wi-Fi MAC-aadressist.
Esimene haavatavus (CVE-2022-42896) tuleneb juba vabastatud mälualadele (use-after-free) viitamisest l2cap_connect ja l2cap_le_connect_req funktsioonide rakendamisel — pärast kanali loomist callback-kõne new_connection kaudu ei seatud sellele lukku, vaid seadistati taimer (__set_chan_timer), mis aegumise möödumisel kutsub esile funktsiooni l2cap_chan_timeout ja kustutab kanali ilma kanali lõpetamise võimaluste kontrollimata l2cap_le_connect* funktsioonides.
Vaikimisi on ajutootel 40 sekundit, arvatakse, et sellise viivituse korral ei saa tekkida võidujooksu seisundit. Kuid selgus, et SMP töötleja teise vea tõttu on võimalik saavutada ajasti väljakutse kohene aktiveerimine ja jõuda võidujooksu seisundisse. Probleem l2cap_le_connect_req võib põhjustada tuumamälu leket, samas kui l2cap_connect võib põhjustada mälusisu ülekirjutamist ja oma koodi käivitamist. Esimene ründevariant võib toimuda Bluetooth LE 4.0 kasutamisel (alates 2009. aastast), teine aga Bluetooth BR/EDR 5.2 kasutamisel (alates 2020. aastast).
Teine haavatavus (CVE-2022-42895) on põhjustatud jääkandmete leket mälust funktsioonis l2cap_parse_conf_req, mida võib kasutada kaugjuhtimise teel tuvastamiseks, mis on seotud tuuma struktuuride näidikute leidmisega, saates spetsiaalselt vormistatud konfigureerimissoove. Funktsioonis l2cap_parse_conf_req kasutati struktuuri l2cap_conf_efs, mille jaoks ei toimunud ettevalmistavat mälu algust, ja manööverdades FLAG_EFS_ENABLE lipuga, oli võimalik vanade andmete lisamine paketisse, mis sisaldus virnas. Probleem ilmneb ainult süsteemides, kus tuum on koostatud CONFIG_BT_HS valiku abil (vaikimisi välja lülitatud, kuid aktiveeritud teatud distributsioonides, näiteks Ubuntu). Edukaks rünnakuks on vajalik ka HCI_HS_ENABLED parameetri seadmine juhtimisliideses väärtuseks true (vaikimisi ei kasutata).
Allikas: opennet.ru
