Een kwaadaardige simkaart kan aanvallercode uitvoeren in de modems achter mobiele IoT-apparaten

Een kwaadaardige simkaart kan het apparaat waarin hij zich bevindt opdracht geven om opdrachten uit te voeren die de aanvaller wil. Op de mobiele modules die zijn ingebouwd in opladers voor elektrische voertuigen, industriële routers en autotelematica-eenheden is dat voldoende om het hele apparaat over te nemen.

Onderzoekers van de Universiteit van Birmingham en het beveiligingsbedrijf Fuzzware testten 26 telefoons en mobiele modules op deze mogelijkheid, ontdekten dat deze bij 9 ervan ingeschakeld waren en gebruikten deze om hun eigen code uit te voeren op een commerciële EV-oplader.

Zes van de acht mobiele modules die ze testten, accepteerden de opdracht. Slechts 3 van de 18 telefoons deden dat: de OPPO Find X5, de OPPO Reno 14 F 5G en de ASUS Zenfone 9. Er zat geen iPhone of Pixel bij.

De blootstelling bevindt zich in machine-to-machine hardware. Vijf van de zes waren Quectel-onderdelen, waarvan er drie afkomstig waren van een EV-oplader, een industriële router en de telematicaregeleenheid van een auto.

Het kennen van het nummer van het slachtoffer is niet voldoende: elke aanval begint met een vijandige kaart die al in de sleuf zit, met de hand is verwisseld, erin is geglipt als een dunne interposer, eruit is geduwd door een gecompromitteerde operator, of is ondermijnd in de software of op de productielijn. Onbeheerde IoT-apparatuur met een toegankelijke SIM-lade en enkele andere zichtbare interfaces is precies waar die handel de moeite waard is.

Er is niet één pleister. Elk van de negen apparaten die de opdracht accepteerden, draait een Qualcomm-communicatieprocessor. Vijf andere op Qualcomm gebaseerde handsets in het onderzoek accepteerden dit niet, wat volgens de krant te wijten is aan maatwerk door de leverancier.

Qualcomm vertelde de onderzoekers dat het een verharde configuratie heeft gebouwd die de interface standaard uitschakelt. Quectel zegt dat het de fout in de toegang tot bestanden heeft verholpen en nog steeds aan de interface zelf werkt. Geen van beide heeft een advies gepubliceerd en het kwetsbaarheidsportaal van de modulemaker vereist een login om überhaupt iets te kunnen zien.

Het eigen standpunt van de onderzoekers is dat de interface verhard, verouderd of volledig uitgeschakeld moet worden. Die verharde configuratie zal de standaard zijn op toekomstige apparaten, vertelden de onderzoekers aan The Hacker News, en reparaties zullen de getroffen modules ook als updates bereiken, hoewel het team niet heeft gecontroleerd of de RUN AT-codepaden zijn verwijderd of alleen zijn uitgeschakeld. Voor iedereen die mobiele IoT-parken exploiteert, is de stap die vandaag beschikbaar is om de moduleleverancier te vragen of RUN AT is ingeschakeld in de door hen geleverde firmware en of dit kan worden uitgeschakeld. Er zijn geen aanvallen met behulp van de interface gemeld.

Het betreffende commando is een proactief commando, onderdeel van de gestandaardiseerde set die een SIM-kaart kan terugsturen naar het modem in plaats van te wachten tot hij wordt gelezen. RUN AT vraagt ​​de modem om een ​​AT-opdracht uit te voeren, de modembesturingstaal die dateert uit de Hayes Smartmodem uit 1981 en die elke leverancier uitbreidt met zijn eigen toevoegingen. Door het te ondersteunen, krijgt de kaart daarom een ​​console voor algemeen gebruik.

Marius Muench, assistent-professor computerwetenschappen aan de Universiteit van Birmingham, zei in de aankondiging van het werk door de universiteit dat het proactieve vermogen van de SIM en het aanvalsoppervlak dat het opent “expliciet gedefinieerd zijn in de technische specificaties voor mobiele communicatie”, en daarom omschrijft hij het resultaat als in overeenstemming met de standaard in plaats van als een breuk ermee.

Die framing is belangrijk voor hoe een oplossing eruit ziet. De individuele fouten zijn gewone bugs en kunnen worden verholpen; de interface die ze blootlegt is een gedocumenteerde mogelijkheid, en het uitschakelen ervan is een beslissing die elke leverancier voor zijn eigen producten neemt.

Architectuur is wat de IoT-kant nog erger maakt. Bijna elke module die het team heeft onderzocht, draait naast de radio een kleine applicatieprocessor, meestal Android op een ARM Cortex-A7, en geeft elk AT-commando door dat de radio niet zelf afhandelt. De kaart praat uiteindelijk met een kleine Linux-computer, die hun paper, deze week gepresenteerd op USENIX WOOT in Baltimore, ‘een rijk aanvalsoppervlak voor vijandige simkaarten’ noemt.

De oplader is een commerciële Autel-eenheid die op het papier wordt geïdentificeerd met de modelcode MAXI US AC W12-L-4G. Daarin geeft de atfwd_daemon van de Quectel EC25AFXDGA-module door de aanvaller bestuurde tekst door aan een shell-oproep via een onveilige formatstring. Een karakterblokkeringslijst moest shell-ontsnappingen tegenhouden. Er is een nieuwe regel voorbij gekomen. Twee fasen later kon het team de code uitvoeren, volledig aangestuurd door opdrachten die de SIM gaf. Autel behoort niet tot de bedrijven die volgens het artikel op de hoogte zijn gesteld; de gebrekkige code hoort bij de module. Muench vertelde The Hacker News dat het team aan Quectel bekendmaakte als de moduleleverancier, die vervolgens zijn eigen klanten op de hoogte bracht.

Op een OPPO Reno 14 F 5G, een van de drie handsets die RUN AT accepteerden, werd de telefoon met het commando AT+COPS=0,,,0 vastgezet op 2G. De eigenaar kan dit niet ongedaan maken. Niet door de vliegtuigmodus in te schakelen, niet door over te schakelen naar handmatige netwerkselectie, niet door mobiele data in te schakelen, niet door de simkaart uit te schakelen, niet door de voorkeursnetwerkgeneratie in de instellingen te wijzigen. 2G kent geen wederzijdse authenticatie, dus bij een downgrade kan het slachtoffer de voorwaarden voor een nep-basisstation niet ongedaan maken.

Twee verdere commando’s schakelden de handset uit en schakelden de modem uit. De tooling van het team, uitgebracht als CATanavond 198 AT-opdrachten die bereikbaar waren via de simkaart op die OPPO-handset.

Een derde case study las willekeurige bestanden van een Quectel EG25-G door middel van een TFTP-daemon die als root draait en niet controleert of een pad een symbolische link is, en stuurde ze vervolgens per mail met behulp van de eigen AT+QSMTP-opdrachten van de module. Daarvoor heb je meer nodig dan een vijandige kaart: de kwaadaardige link moet eerst op het bestandssysteem van de module zitten, daar geplaatst worden via een SD-kaart of door een vervaardigde partitie te flashen.

Terwijl ze aan dit werk werkten, liet de groep zien dat een vijandige simkaart een vergrendelde Android-telefoon een door de aanvaller bestuurde webpagina kon laten openen zonder gebruikersinteractie, onder meer op de Pixel 6, 8 en 9. Google heeft die afzonderlijke fout gepatcht als CVE-2025-48618 in het Android-bulletin van december 2025.

Het onderzoek stelt alleen vast wat de 26 apparaten doen. Muench zei dat het team er vrij zeker van is dat elke module in de EC25-, EG25- en RM52xN-serie van Quectel hierdoor wordt getroffen, en denkt dat het waarschijnlijk ook andere Quectel-modules zijn die op een Qualcomm-modem zijn gebouwd. Hij zei dat deze modules voorkomen in auto’s, voertuigladers, betaalterminals en andere IoT-apparaten, en dat Quectel geen firmware-updates publiekelijk vrijgeeft, waardoor de blootstelling moeilijk op grote schaal te verifiëren is. Niemand heeft een cijfer gegeven over hoeveel er in dienst zijn.

De rapporten gingen in maart 2026 naar Google, Oppo, Quectel, Semtech en Qualcomm, en in mei naar de GSMA. Muench zei dat de blootgestelde SIM AT-interface wordt gevolgd als CVE-2026-57550, toegewezen via Qualcomm, en als CVD-2026-0122 door de GSMA, hoewel het CVE-record nog moet verschijnen in de gepubliceerde lijst van het CVE-programma. Oppo en Google beschouwden de bevindingen als informatief, maar vielen buiten het bereik van de bugbounty.

Semtech heeft ze bevestigd en is van plan patches te verzenden die door Qualcomm zijn geschreven. Quectel bevestigde ze ook en zei dat de opdrachtinjectie al bekend was en opgelost was in nieuwere firmware, hoewel het geen getroffen of vaste versienummers heeft gepubliceerd.

Dezelfde daemon heeft een voorgeschiedenis: een AT-bereikbare commando-injectie op een ander toegangspunt werd in 2021 gepubliceerd als CVE-2021-31698. Op 10 augustus had geen van de vijf leveranciers een openbaar advies over het onderzoek uitgebracht, het adviesportaal van Quectel blijft login-gated en er is geen melding gemaakt van misbruik.

Thijs Van der Does