Sårbarheder i Linux-kernen, der fjernudnyttes via Bluetooth

Der er identificeret en sårbarhed i Linux-kernen (CVE-2022-42896), som potentielt kan bruges til at organisere fjernudførelse af kode på kerneniveau ved at sende en specialudformet L2CAP-pakke via Bluetooth. Derudover er et andet lignende problem (CVE-2022-42895) blevet identificeret i L2CAP-handleren, der kan lække indhold af kernehukommelse i konfigurationsinformationspakker. Den første sårbarhed har været manifest siden august 2014 (kerne 3.16), og den anden siden oktober 2011 (kerne 3.0). Sårbarhederne blev rettet i Linux-kerneudgivelser 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154 og 5.15.78. Du kan spore rettelsen i distributioner på følgende sider: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Udnyttelsesprototyper, der kører på Ubuntu 22.04, er blevet offentliggjort for at demonstrere muligheden for et fjernangreb. For at udføre angrebet skal angriberen være inden for rækkevidde af Bluetooth - ingen forudgående parring er påkrævet, men Bluetooth skal være aktiv på computeren. For et angreb er det nok at kende MAC-adressen på ofrets enhed, som kan bestemmes ved at sniffe eller, på nogle enheder, beregnes baseret på Wi-Fi MAC-adressen.

Den første sårbarhed (CVE-2022-42896) er forårsaget af adgang til et allerede frigivet hukommelsesområde (use-after-free) i implementeringen af ​​funktionerne l2cap_connect og l2cap_le_connect_req - efter oprettelse af en kanal via tilbagekaldskaldet new_connection, var der ikke en lås indstillet til det, men der blev indstillet en timer (__set_chan_timer ), efter en timeout, kaldet l2cap_chan_timeout-funktionen og ryddet kanalen uden at kontrollere afslutningen af ​​arbejdet med kanalen i l2cap_le_connect*-funktionerne.

Standard timeout er 40 sekunder, og det blev antaget, at en løbstilstand ikke kunne opstå med en sådan forsinkelse, men det viste sig, at på grund af en anden fejl i SMP-handleren, var det muligt øjeblikkeligt at kalde timeren og nå løbstilstanden. Et problem i l2cap_le_connect_req kan føre til en kernehukommelseslækage, og i l2cap_connect kan den overskrive indholdet af hukommelsen og udføre din kode. Den første variant af angrebet kan udføres ved hjælp af Bluetooth LE 4.0 (siden 2009), den anden ved hjælp af Bluetooth BR/EDR 5.2 (siden 2020).

Den anden sårbarhed (CVE-2022-42895) er forårsaget af et resterende hukommelseslæk i funktionen l2cap_parse_conf_req, som kan bruges til at fjernindhente information om pointere til kernestrukturer ved at sende specielt udformede konfigurationsanmodninger. I funktionen l2cap_parse_conf_req blev l2cap_conf_efs strukturen brugt, hvortil den allokerede hukommelse ikke var præinitialiseret, og gennem manipulationer med flaget FLAG_EFS_ENABLE var det muligt at opnå inklusion af gamle data fra stakken i pakken. Problemet opstår kun på systemer, hvor kernen er bygget med indstillingen CONFIG_BT_HS (deaktiveret som standard, men aktiveret i nogle distributioner, såsom Ubuntu). Et vellykket angreb kræver også indstilling af parameteren HCI_HS_ENABLED via administrationsgrænsefladen til sand (bruges ikke som standard).

Kilde: opennet.ru

Tilføj en kommentar