Az Android platformon felfedeztek egy sérülékenységet (CVE-2022-20465), amely lehetővé teszi a képernyőzár kikapcsolását a SIM-kártya áthelyezésével és a PUK-kód beírásával. A képernyőzár kikapcsolásának lehetőségét Google Pixel eszközökön mutatták be, de mivel a javítás az Android fő kódalapját érinti, valószínű, hogy a probléma más gyártók firmware-eit is érinti. A problémát a legújabb, novemberi biztonsági javítások gyűjteménye orvosolta. A probléma felfedezője, aki felhívta a figyelmet a hibára, 70 ezer dollár jutalmat kapott a Google-tól.
A probléma a PUK-kód (Személyes Unblocking Kulcs) beírás utáni helytelen kezeléséből adódik, amely a PIN-kód többszöri helytelen megadásával letiltott SIM-kártya újraaktiválásához használatos. A képernyőzár kikapcsolásához elegendő a telefonba egy PIN-kóddal védett SIM-kártyát helyezni. Miután a PIN-kóddal védett SIM-kártyát lecserélik, először megjelenik a PIN-kód kérése. Ha a PIN-kódot háromszor helytelenül adják meg, a SIM-kártya letiltásra kerül, amelyet követően lehetőség nyílik a PUK-kód megadására a feloldásához. Kiderült, hogy a helyes PUK-kód megadása nemcsak a SIM-kártyát oldja fel, hanem a képernyőzár megkerülésével visszavisz a főfelületre, anélkül, hogy megerősítést kérne a fő jelszó vagy a grafikus minta megadásával.

A sérülékenységet a vendéglátó KeyguardSimPukViewController-ben a PUK-kódok ellenőrzésének logikájában fellépő hiba okozza, amely a további hitelesítő képernyő megjelenéséért felelős. Az Android többféle hitelesítő képernyőt használ (PIN, PUK, jelszó, grafikus elrendezés, biometrikus hitelesítés), és ezek a képernyők sorban jelennek meg, amikor több ellenőrzést kell végrehajtani, például ha PIN-kódra és grafikus kulcsra van szükség.
A helyes PIN-kód megadása után a második ellenőrzési szakasz lép életbe, amely megköveteli az alapvető feloldó kód megadását, de a PUK-kód megadása esetén ez a szakasz átugorható, és a hozzáférés megadása anélkül történik, hogy kérnék az alapvető jelszót vagy a grafikus kulcsot. A következő feloldási lépés elhagyása úgy történik, hogy a KeyguardSecurityContainerController#dismiss() hívásakor nem történik összehasonlítás a várt és a teljesített ellenőrzési módszer között, azaz a kezelő úgy véli, hogy az ellenőrzési módszer nem változott, és a PUK-kód ellenőrzési folyamatának befejezése a jogosultságok sikeres megerősítését jelzi.
A sebezhetőség véletlenül került napvilágra — a felhasználó telefonja lemerült, és a töltés után többször hibázott a PIN-kód megadásakor, majd PUK-kóddal feloldotta a zárolást, és csodálkozott, hogy a rendszer nem kérte az alapvető jelszót, amely a törölt adatok visszafejtéséhez szükséges, majd a "Pixel is starting…" üzenettel lefagyott. A felhasználó alaposnak bizonyult, úgy döntött, hogy kideríti a dolgot, és különböző módszerekkel kísérletezett a PIN- és PUK-kódok megadásával, míg véletlenül elfelejtette újraindítani az eszközt a SIM-kártya cseréje után, és a lefagyás helyett hozzáférést kapott a környezethez.
Különös figyelmet érdemel a Google reakciója a sebezhetőségről szóló bejelentésre. Az információt júniusban küldték el, de szeptemberig a kutató nem tudott érdemi választ kapni. Úgy ítélte meg, hogy ez a viselkedés azért van, mert nem ő az első, aki jelezte ezt a hibát. Szeptemberben merült fel a gyanú, hogy valami nincs rendben, amikor a probléma nem oldódott meg a frissített firmware telepítése után, amelyet 90 nappal később adtak ki, amikor a megadott titoktartási idő már lejárt.
Mivel minden kísérlet arra, hogy megtudja a problémáról elküldött üzenet állapotát, csak automatizált és sablonos válaszokhoz vezetett, a kutató megpróbálta személyesen felvenni a kapcsolatot a Google munkatársaival, hogy tisztázza a javítás előkészítésének helyzetét, sőt, a Google londoni irodájában be is mutatta a sérülékenységet. Csak ezt követően mozdult el a hiba kijavítása a holtpontról. A vizsgálat során kiderült, hogy valaki már korábban beszámolt a problémáról, de a Google úgy döntött, hogy kivételt tesz, és jutalmat fizet a hibáról való megismételt bejelentésért, mivel csak a szerző kitartásának köszönhetően figyeltek fel a problémára.
Forrás: opennet.ru
