OnePlus Nord 2 har en sårbarhet som gir root shell-tilgang i løpet av minutter på en låst oppstartslaster, uten datasletting

OnePlus Nord 2 har en sårbarhet som lar en angriper få ubegrenset tilgang til rotskall. Les videre for å vite mer!

Mange av oss her på XDA-Developers begynte opprinnelig å surfe på forumene for første gang da vi var ute etter root Android-enhetene våre. På den tiden stolte folk ofte på "ett-klikks rot"-metoder: Apper eller skript som inneholder nyttelaster som retter seg mot kjente rettighetseskaleringssårbarheter for den eksisterende fastvaren for å få root adgang. Med forbedringer og endringer i kryptering, tillatelser og personvernrelatert håndtering er moderne Android-enheter relativt sikre mot slike angrepsvektorer, men det vil alltid være rom for utnytter og sårbarheter.

OnePlus kan ha sementert navnet sitt blant de store Android-OEM-ene, men telefonene er det ingen fremmed til sikkerhetsfeil. Denne gangen har selskapet etterlatt en ganske interessant (les: bekymringsfull) sårbarhet uopprettet på OnePlus Nord 2 siden utgivelsen. Selv om å utnytte smutthullet krever fysisk tilgang til enheten, kan angriperen effektivt

få et ubegrenset rotskall før brukeren til og med kan skrive inn legitimasjonen sin. Spesielt den nylig utgitte Pac-Man-utgaven av Nord 2 er også berørt.

Bakgrunn

I dag, når vi snakker om å ha root-tilgang på en Android-smarttelefon, tenker folk vanligvis på oppdatering av lageroppstartsbildet med Magisk først og deretter blinke det korrigerte bildet til målenheten etter opplåsing av oppstartslasteren. På den måten kan sluttbrukeren ha overvåket tilgang til "su"-binæren gjennom en manager-app. Et par andre eksperimentelle tilnærminger eksisterer, men de samler sjelden så mye vanlig bruk.

Når det gjelder pre-produksjon, er scenariet imidlertid helt annerledes. Mens de forbereder fastvaren til en enhet, må ingeniørene ha forskjellige loggingsparametere slått på, inkludert root-tilgang. Selv på en userdebug bygge, kjører Android Debug Bridge Daemon (adbd) som root, slik at man kan ha privilegert shell-tilgang for feilsøkingsformål. Når fastvaren er klar for sending, må alle disse feilsøkingsparametrene slås av før den rulles ut.

Men hva skjer hvis du glemmer å gjøre det? Vi vil se, ettersom de offisielle OxygenOS-utgivelsene for OnePlus Nord 2 kommer med en slik feil.

OnePlus Nord 2 – Root Shell-sårbarhet

Noen OEM-er som Samsung tilbyr sidelasting av oppdateringspakker i sin lagergjenoppretting på detaljhandelsenheter. I så fall adbd binær kjører med et betydelig høyt privilegium under sidelasting, men det lukker seg selv så snart oppdateringsprosessen er ferdig. Bortsett fra det er det ingen ADB-tilgang tillatt i et OEM-levert gjenopprettingsmiljø.

OnePlus tillater ikke lenger brukere å flashe en ZIP-oppdateringspakke gjennom sin lagergjenoppretting via ADB sideload. Forutsatt at alt annet er konfigurert som det skal, bør gjenopprettingsmiljøet til en vanlig OnePlus-enhet være trygt fra angripere som leverer noen form for nyttelast ved hjelp av ADB. Dessverre går ikke alt etter planen når det gjelder OnePlus Nord 2.

Som det viser seg, hvem som helst kan skape et Android-feilsøkingsskall med root-privilegium i gjenopprettingsmiljøet til OnePlus Nord 2. En av de kritiske feilsøkingsinnstillingene tok seg tilsynelatende til produksjonsbyggene, noe som fører til denne feilen.

Utnytter feilen på OnePlus Nord 2

Alt du trenger å gjøre er å starte OnePlus Nord 2 på nytt til gjenopprettingsmodus. En angriper kan ta enheten og bruke en enkel maskinvareknappkombinasjon for å tvinge den til å gå til gjenopprettingsmodus. Faktisk er det ikke nødvendig å nå selve gjenopprettingsmenyen, siden den sårbare delen kommer før det. Kreditten går til XDA Senior Member AndroPlus til peke ut eksistensen av denne feilen tilbake i oktober 2021.

  1. Mens telefonen er slått av, trykk volumet ned og strømknappene samtidig til du se OnePlus-logoen med et lite "RECOVERY MODE"-banner nederst i venstre hjørne av skjermen.
  2. Deretter bør du se språkvalgskjermen. Ingen grunn til å gå videre, siden vi kan starte ADB-tilgang rett herfra.
  3. Koble nå telefonen til en PC (eller Mac) ved hjelp av USB-kabelen. I tilfelle du bruker Windows, kan du se et nytt Android USB-feilsøkingsgrensesnitt dukker opp i Enhetsbehandling. Du må kanskje også installere en passende Android USB-driver før Windows kan gjenkjenne den nye enheten. Linux- og macOS-brukere, derimot, kan bruke lsusb kommando for å oppdage tilstedeværelsen av det nye maskinvaregrensesnittet.
  4. Med tanke på at du allerede har den nyeste versjonen av ADB og Fastboot verktøy installert på din PC/Mac, start en kommandoprompt/PowerShell/Terminal-forekomst og utfør følgende kommando:
    adb devices
    Den skal vise Nord 2 i gjenopprettingsmodus. Dette er også spesielt interessant, siden standard ADB-autorisasjonsprompt ikke er nødvendig her. Du kan få en "uautorisert enhet"-feil, men å slette verts-PCens eksisterende ADB RSA-nøkkeldatabase og starte ADB-serveren på nytt bør til slutt tillate deg å få den autorisert.
  5. Instruer nå adbd å kjøre som root:
    adb root
    Denne kommandoen kan ta lang tid, og du vil sannsynligvis få en timeout-feil. Ikke desto mindre nå adbd skal kjøre som root.
  6. Til slutt kontrollerer du rettighetsnivået til skallet ved å bruke følgende kommando:
    adb shell whoami

Omfanget av feilen

Potensielle misbruk av denne sikkerhetssårbarheten er skremmende. Med et vellykket angrep på OnePlus Nord 2 kan en angriper dumpe hver partisjon av enheten. Som et resultat er hele datapartisjonen – inkludert filer som er lagret i de vanligvis utilgjengelige private datakatalogene til applikasjoner – tilgjengelig for angriperen. I tilfelle datapartisjonen kom ut som kryptert (på grunn av at brukeren har angitt en PIN-kode eller passord), kan dumpen fortsatt være nyttig for rettsmedisinsk analyse.

Ikke bare det, du kan skyve en kjørbar til /data/local/tmp og kjøre den derfra. Dette er en klassisk angrepsvektor, som kan være nyttig for chainloading av en annen utnyttelse. Dessuten, siden du nå kan ringe setprop verktøyet som root for å endre ulike prop-verdier, kan du teknisk kapre noen av de privilegerte OEM-spesifikke variablene. Sist men ikke minst, selv om du ikke har utvikleralternativer låst opp, vil telefonen automatisk be om tilgang til USB-feilsøking etter at du påkaller ADB i gjenoppretting og omstart til det vanlige Android-miljøet, noe som betyr at sårbarhetens omfang ikke er begrenset til bare gjenopprettingsdelen bare.

Merk at du ikke kan installere APK-filer ved å bruke ADB i gjenopprettingsmiljøet på grunn av at Package Manager-verktøyet ikke er tilgjengelig der.

Hvordan sjekke om din OnePlus Nord 2 er berørt? (Hint: Det er det)

Som nevnt tidligere kan du utnytte denne sårbarheten både på den vanlige og den spesielle Pac-Man-utgaven av OnePlus Nord 2. I et nøtteskall, hvis du skriver inn et rotskall (du vil vite når skallsymbolet endres fra $ til #), så vet du at feilen er tilstede.

Vi har med hell fått root shell-tilgang på siste offentlige indiske og europeiske OxygenOS-firmware for enheten, som betyr hver eneste OnePlus Nord 2-enhet der ute er sårbar på tidspunktet for skriving av denne artikkelen.


Hva blir det neste?

Vi vil følge opp denne saken etter hvert som mer informasjon blir tilgjengelig. OnePlus ga følgende uttalelse om problemet:

Vi behandler personvern og sikkerhet svært alvorlig. Vi prioriterer denne saken og vil dele en oppdatering så snart vi har mer informasjon.

Selv om alt dette virker skummelt, husk at en angriper fortsatt vil trenge fysisk tilgang til telefonen for å få tilgang til rotskall. Inntil OnePlus ruller ut en oppdatering som retter opp sårbarheten, prøv å holde OnePlus Nord 2 unna fremmede. Selv om vi ikke har kommet over noen tilfeller av ondsinnet bruk, kan man ikke utelukke en slik mulighet siden sårbarheten har vært i naturen i minst 2 måneder nå.