Google repareert nachtmerrie-Android-bug waardoor gebruiker geen hulpdiensten kon bellen

Google repareert nachtmerrie-Android-bug waardoor gebruiker geen hulpdiensten kon bellen

De Android-beveiligingspatch van januari is nu uitgebracht en lost een van de meest irritante Android-bugs op die zich in een tijdje kunnen voordoen: bepaalde apps kunnen ervoor zorgen dat u geen contact kunt opnemen met 911 of andere alarmnummers over de hele wereld.

Begin december dook een aangrijpend verhaal op op een GooglePixel-subreddit van een gebruiker die zijn Pixel 3 crashte toen hij die het meest nodig had: terwijl hij het noodnummer 911 belde voor zijn grootmoeder, die ‘zag eruit alsof ze een beroerte had’. Het hele telefoonsubsysteem crashte onmiddellijk nadat hij de hulpdiensten had gebeld, en gebruiker KitchenPicture5849 zei dat hij geen oproep kon krijgen om verbinding te maken of op te hangen om de oproep te herhalen. Gelukkig was er een vaste lijn in de buurt beschikbaar nadat hun Android-telefoon in de war raakte en de hulpdiensten werden gecontacteerd.

Nadat de crisis voorbij was, belde de gebruiker opnieuw naar het alarmnummer vanaf zijn smartphone en Android crashte opnieuw, wat aangeeft dat dit geen eenmalige fout was. Bij het controleren van hun telefoonrekening bleek ook dat KitchenPicture5849 nooit daadwerkelijk verbinding had gemaakt met de 911-service. Ze zeggen dat ze ook verschillende andere privéberichten hebben ontvangen van gebruikers die zeiden dat ze dezelfde fout ondervonden.

Google nam op 8 december contact op met de gebruiker en reageerde publiekelijk op het bericht:

Op basis van ons onderzoek hebben we het probleem onder een beperkt aantal omstandigheden kunnen reproduceren. We denken dat het probleem zich alleen voordoet op een klein aantal apparaten waarop de Microsoft Teams-app is geïnstalleerd wanneer de gebruiker niet is aangemeld, en we zijn momenteel op de hoogte van slechts één gebruikersrapport van deze fout. We hebben vastgesteld dat het probleem werd veroorzaakt door een onbedoelde interactie tussen de Microsoft Teams-app en het onderliggende Android-besturingssysteem. Microsoft werkt nauw samen met Google om deze onbedoelde interactie op te lossen.

Google zei dat Microsoft zo snel mogelijk een update voor de app zal uitbrengen en dat gebruikers de Play Store moeten controleren op updates. Het bedrijf zei ook dat de patch op OS-niveau een maand later, begin januari (dat is vandaag) zal worden uitgebracht. Destijds gaf Google geen verder commentaar op de kwestie.

Waarom apps de 911-service kunnen verbreken

Vertraging. Microsoft Teams heeft de 911-service verbroken? Kunnen willekeurige Android-apps hulpdiensten verstoren? Hoe? Waarom zouden apps van derden duizenden meters verwijderd zijn van zo’n belangrijke functie? Zijn er andere apps die de 911-service verstoren, of alleen Microsoft Teams? Terwijl Teams werd gerepareerd, was het oké om Android-gebruikers een maand lang met deze bug op OS-niveau te laten rondhangen, vooral als we niet weten of andere apps het doen? Android is Android, dus veel telefoons zullen sowieso nooit gerepareerd worden. Hoe kunnen gebruikers weten dat hulpdiensten actief zijn? Behalve dat Google geen andere antwoorden gaf dan een maand wachten op een oplossing.

Gelukkig konden enkele zeer slimme mensen in de Android-gemeenschap antwoorden geven die Google niet deelde. Mishaal Rahman, Senior Technical Editor bij Esper, schreef een ongelooflijk bericht op Medium waarin hij beschrijft hoe de fout werkt en waarom deze optreedt. Android-apps met een telefoongesprekfunctie kunnen een “PhoneAccount” bij het systeem registreren, wat aangeeft dat ze kunnen bellen. Er zijn verschillende apps die kunnen worden geïnstalleerd met PhoneAccount, waaronder een genaamd “CAPABILITY_PLACE_EMERGENCY_CALLS”. Als het tijd is om 911 te bellen, doorzoekt Android de lijst met geregistreerde telefoonaccounts en selecteert er een. Tot nu toe zo goed.

Een van de vele bugs die in het bericht van Rahman zijn geïdentificeerd, is dat Microsoft Teams elke keer dat Teams wordt gestart een extra telefoonaccount op het systeem registreert, op voorwaarde dat u niet bent aangemeld. Merk op dat het niet ongebruikelijk is om Microsoft Teams te installeren en het vervolgens nooit te gebruiken . veelgehoorde klacht over de Android Teams-app is dat deze gebruikers vaak automatisch uitlogt.

Als u bent afgemeld, zal het 10 keer uitvoeren van Microsoft Teams uw telefoon bezaaien met 10 dubbele PhoneAccounts van Teams. Teams zouden dit niet moeten doen, en de Microsoft-update heeft Teams ervan weerhouden het te doen, maar veel dubbele PhoneAccounts zouden ook niet genoeg moeten zijn om het Android-telefoonsysteem op de knieën te krijgen.

Volgende bug: bij het kiezen van een PhoneAccount voor een noodoproep doorloopt Android een ingewikkeld sorteerproces om te bepalen welk account moet worden gebruikt. De laatste stap in dit sorteerproces, de conflictoplosser, is het sorteren van hashcodes. Hashcode-vergelijking trekt eenvoudig de ene hashcode van de andere af.

Maar net als die stomme Microsoft Exchange 2000-bug die onlangs gebeurde, kan dit leiden tot een integer overflow of underflow, en nu crasht het telefoonsubsysteem. De code van Google bevat fouten, maar aangezien dit de laatste manier is om sorteerproblemen op te lossen na het proberen van meer voor de hand liggende dingen zoals de pakketnaam, mag deze alleen worden aangeroepen op een zeer specifieke instantie van de toepassing die dubbele PhoneAccounts genereert. Dus bedankt Microsoft!

De oplossing van Google voor deze fout is hier , getiteld “Fix integer overflow/underflow veroorzaakt door het sorteren van een dubbel telefoonaccount tijdens een alarmnummeroproep. In plaats van de ene hashcode van de andere af te trekken en mogelijk te werken met een heel groot of heel klein getal dat het systeem laat crashen, verwerkt Google nu de twee getallen via de Java-functie ‘Integer.compare’. Dit retourneert alleen -1, 0 of 1, wat een kleiner, identiek of groter resultaat van de vergelijking aangeeft.

Als je in eerste instantie net als ik bent en je afvraagt ​​waarom Android überhaupt telefoonaccounts sorteert en niet alleen het standaardaccount op de simkaart gebruikt, zal ik een gekke gok doen en zeggen dat het een poging was om de 911-service hoe dan ook te laten werken. Welke. Voor het geval dat het hoofdaccount niet werkt, heeft Android een lijst nodig met alle mogelijke telefoonaccounts die het kan proberen en wil dit automatisch doen om op alle mogelijke manieren verbinding te maken met 911. Dit triagesysteem bestaat alleen om contact op te nemen met hulpdiensten, dus regelmatig bellen werkt nog steeds voor getroffen gebruikers.

De derde bug in deze puinhoop is dat Microsoft Teams zichzelf niet eens registreert als afhandelaar voor noodoproepen. De teams creëerden een miljoen PhoneAccounts en gebruikten de vlag CAPABILITY_PLACE_EMERGENCY_CALLS niet, maar brak toch 911. Het sorteerproces van Google begint met het vragen naar alle telefoonaccounts, terwijl de beste eerste stap zou zijn om te beginnen met alle telefoonaccounts die noodhulp ondersteunen. oproepen.

Google neemt voorafgaand aan deze laatste bug een nog drastischer besluit en verwijdert elk “zelfbeheerd” telefoonaccount uit de 911-hulpdienstprocedure. “Zelfbeheerd”Android-telefoonaccounts zoals Microsoft Teams krijgen directer toegang tot de Android-telefoniestack en kunnen hun eigen functies gebruiken. Het Android-noodoproepsysteem houdt nu alleen rekening met eenvoudigere telefonieproviders die verbinding maken met de standaard telefoon-app, zoals uw provideraccount.

Al deze andere VoIP-toepassingen kunnen waarschijnlijk nog steeds worden gebruikt om zelf 911 te bellen (in veel landen is de 911- functie wettelijk verplicht ). Maar als u de standaardkiezer opent en op 911 drukt, kiest Android alleen uit standaard, door het systeem beheerde telefoonaccounts.

Wie wordt gerepareerd en hoe u kunt controleren op een 911-servicefout

Rahman zegt dat de bug van Google hiervoor CVE-2021-39659 is, die in het maandelijkse beveiligingsbulletin wordt geclassificeerd als een zeer ernstige denial-of-service-kwetsbaarheid met patches voor apparaten met Android 10, 11 en 12. In de Android-codebase is Google Deze fix is ​​in feite een volledige backporting naar Android 8.0, dat technisch niet langer wordt ondersteund. Dit is meestal puur theoretisch, aangezien geen enkele leverancier beveiligingsupdates daadwerkelijk naar dergelijke oudere apparaten pusht. Maar de code is er als iemand hem nodig heeft.

De Android-telefoniestack is (nog?) geen gemakkelijk te upgraden Project Mainline-module, dus de enige manier om een ​​oplossing te krijgen is met de Android Security Monthly Update van januari 2022. Samsung zou vanaf deze week elke telefoon op deze lijst moeten updaten , terwijl Google fixes uitbrengt voor de Pixel 3a, 4, 4a, 5 en 5a. Update: er wordt ook een noodoproepupdate verwacht voor de buiten gebruik zijnde Pixel 3.

De update komt er nog niet voor de Pixel 6. Het nieuwste vlaggenschip van Google bevindt zich momenteel in een updatecrisis. De update van december 2021 is geannuleerd vanwege niet-mobiele verbindingsproblemen (telefoongesprekken werken niet). Aangezien Google moeite heeft om dingen op te lossen, zou de volgende Pixel 6-update met deze 911-fix “eind januari” moeten zijn. In de tussentijd is het oké om op de november-patch te zitten. Beide Google-hitlijsten: “begin januari” en “eind januari” lijken ongelooflijk traag vanwege een bug die kan leiden tot de letterlijke dood van gebruikers.

Ik doe nog een gekke gok en zeg dat de Pixel 6 een rare telefoon is omdat het een totaal andere SoC en modem is (beide van de Exynos-divisie van Samsung en alle andere Pixels gebruiken Qualcomm). Het creëren van een kerstinkopenseizoen heeft Google geen manoeuvreerruimte gegeven in het geval van vertragingen bij de lancering. Dat maakt het niet minder teleurstellend voor een telefoon met veel first-time-voordeel, maar hopelijk is het een tijdelijk probleem.

Het verbaast me dat dit slechts een “hoge” (in plaats van “kritieke”) bug is en dat het één tot twee maanden duurt om deze uit te rollen. Het vertragen van een ambulance kan fataal zijn, dus het zou mooi zijn als het allemaal sneller arriveerde, niet op de manier waarop Google besluit dit probleem op te lossen.

Tot nu toe hebben we alleen gehoord dat Microsoft Teams deze fout met dubbele telefoonaccounts veroorzaakte, maar het is niet bekend of andere apps een vergelijkbare fout maken. Als u ziet dat een app in deze lijst veel dubbele accounts genereert, is de kans groot dat u hierdoor geen verbinding kunt maken met hulpdiensten. Ik raad aan de app te verwijderen, contact op te nemen met de ontwikkelaar en anderen op Twitter of waar dan ook op de hoogte te stellen.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *