Marc Newlin, som avdekket en sårbarhet MouseJack for syv år siden, avslørte informasjon om en lignende sårbarhet (CVE-2023-45866), som påvirker Bluetooth-stakker for Android, Linux, macOS og iOS. Denne sårbarheten gjør det mulig å forfalske tastetrykk ved å simulere aktivitet fra en inngangsenhet tilkoblet via Bluetooth. Når en angriper får tilgang til tastaturet, kan de utføre forskjellige handlinger, som å kjøre kommandoer i systemet, installere programmer og omdirigere meldinger.
Sårbarheten skyldes at vertedriverne for HID (Human Interface Device) for Bluetooth-enheter har en modus som lar en ekstern periferiinnretning opprette og etablere krypterte forbindelser uten autentisering. Slike tilkoblede enheter kan sende tastaturmeldinger, og HID-stakken behandler dem, noe som åpner for muligheten for en angrep ved å forfalske HID-meldinger uten brukerens medvirkning. Dette angrepet kan utføres på avstand opptil 100 meter fra offeret.
Mekanismen for enhetsparring uten autentisering er definert i Bluetooth-spesifikasjonen, og avhengig av innstillingene i Bluetooth-stakken, lar det tilkoble enheten uten bekreftelse fra brukeren. For eksempel, i Linux, når man bruker Bluetooth-stakken BlueZ, må Bluetooth-adapteren være i oppdagelses- og tilkoblingsmodus for skjult parring. I Android er det nok å aktivere Bluetooth-støtte. I iOS og macOS må Bluetooth være aktivert og et trådløst tastatur må være tilkoblet for at et vellykket angrep skal skje.
Muligheten for å forfalske input ble demonstrert i Ubuntu 18.04, 20.04, 22.04 og 23.10 med Bluetooth-stakk basert på BlueZ-pakken. ChromeOS er ikke sårbart, da innstillingene for Bluetooth-stakken ikke tillater tilkoblinger uten autentisering. I Android påvirker sårbarheten enheter med plattformversjoner fra 4.2.2 til 14. I macOS ble sårbarheten demonstrert på MacBook Pro 2022 med Apple M2-prosessor og macOS 13.3.3, samt på MacBook Air 2017 med Intel-prosessor og macOS 12.6.7. I iOS ble sårbarheten demonstrert på iPhone SE med iOS 16.6. Aktivering av Lockdown-modus gir ikke beskyttelse mot angrep på macOS og iOS.
I Linux er sårbarheten was resolved i kodebasen Bluez ved å sette innstillingen «ClassicBondedOnly» til «true», som aktiverer sikker modus og tillater opprettelse av forbindelser først etter paring. Tidligere var verdien satt til «false», noe som reduserte sikkerheten for å ivareta kompatibilitet med enkelte inndataenheter.
I Bluetooth-stakken Fluoride, som brukes i de nyeste versjonene av Android, er sårbarheten fikset ved å gjøre autentisering obligatorisk for alle krypterte forbindelser. Oppdateringer for Android ble bare utgitt for versjonene 11-14. For Pixel-enheter ble sårbarheten fikset i desember-oppdateringen. For Android-versjoner fra 4.2.2 til 10 forblir sårbarheten ufikset.
Kilde: linux.org.ru
