SMS of Death : un SMS invisible coupe les appels téléphoniques sur Android
Un SMS invisible, sans notification ni numéro d'expéditeur, et votre smartphone Android raccroche, y compris en plein appel d'urgence. C'est le principe de l'attaque surnommée SMS of Death associée à une faille dévoilée le 29 octobre 2026 par un chercheur indépendant. Voici ce qu'il faut savoir.
Le chercheur Mark Blaszczyk a publié ses travaux sur smsofdeath.com, près de six mois après avoir signalé le problème à Google, puisque le signalement remonte au 5 mai 2026.
L'attaque SMS of Death s'appuie sur un vecteur qui n'est pas nouveau : les messages WAP Push. À l'inverse d'un SMS texte classique, un WAP Push est un SMS binaire adressé à un port applicatif (ici le port 2948), un peu comme un paquet réseau destiné à un service précis. C'est par ce canal que les opérateurs envoient, par exemple, les notifications de MMS ou les paramètres de configuration (APN). Ces messages ne s'affichent jamais dans l'application Messages : ils sont traités en arrière-plan par le framework de téléphonie d'Android. En 2009 déjà, l'oCERT avait signalé qu'un message WAP Push malformé pouvait déconnecter un smartphone sous Android 1.5 du réseau mobile. Plus de 15 ans plus tard, l'histoire se répète...
En effet, cette attaque a été reproduite sur un smartphone Google Pixel 9 (firmware d'avril 2026) et sur plusieurs Samsung Galaxy, avec un taux de réussite de 100 % selon le chercheur, d'Android 12 jusqu'à Android 16.
Un entier mal converti, et la téléphonie s'arrête
Le problème de sécurité se situe dans la méthode decodeWapPdu() du composant WapPushOverSms chargée de décoder les messages WAP Push. Chaque message commence par annoncer la taille de son en-tête, et Android fait confiance à cette valeur sans la vérifier. Lors de ses tests, le chercheur a intégré un nombre énorme : 2 147 483 648 (la séquence 88 80 80 80 00, soit 0x80000000). Cependant, Android a rangé ce nombre dans une variable qui ne peut pas dépasser 2 147 483 647 (un entier signé sur 32 bits). Ce dépassement d’une seule unité suffit à faire basculer la valeur sous la forme d'une valeur négative : elle devient alors -2 147 483 648.
Que se passe-t-il ensuite ? Android essaie de réserver un espace mémoire de cette taille pour lire l’en-tête. Mais, une taille négative n’ayant aucun sens, le système déclenche alors une erreur que le code n’a pas prévu de gérer. Résultat : le processus com.android.phone, qui pilote toute la partie téléphonie du smartphone, plante.
D'après Mark Blaszczyk, il y a plusieurs conséquences au niveau de l'appareil ciblé :
Aucune interaction : rien n'apparaît à l'écran et le numéro de l'attaquant reste invisible. Connaître le numéro de la cible suffit.
Appels coupés : chaque plantage interrompt le service de téléphonie pendant 1 à 2 secondes sur le smartphone ciblé, ce qui met fin aux appels en cours, y compris vers les services d'urgence.
Effet prolongé : l'opérateur renvoie les messages non acquittés. Lors des tests, un seul SMS a provoqué des coupures intermittentes pendant une semaine (à chaque réémission).
Redémarrage en boucle : avec une vingtaine de messages, l'appareil devient inutilisable, car les messages piégés sont retraités à chaque démarrage. Sur Android 12, le téléphone repart en mode recovery environ toutes les 90 secondes, avec l'effacement des données proposé à l'écran.
Un utilisateur lambda finira donc par réinitialiser son téléphone. Une procédure documentée par un contributeur du projet permet pourtant de supprimer, via ADB, uniquement les messages concernés dans la table content://sms/raw. Encore faut-il avoir un ordinateur et savoir manipuler ADB...
Une application PoC (format APK) et son code source sont disponibles sur GitHub. "Il s'agit d'une arme fonctionnelle", prévient le chercheur.
Un correctif discret, sans CVE
D'après la chronologie initialement publiée par le chercheur, Google avait considéré que ce problème ne relevait pas de la sécurité, et c'était toujours la position de Google fin octobre 2026. Pourtant, un ingénieur Android a rédigé un correctif dès le 15 juin 2026 : le commit 735d967, intitulé "Fix remote DoS in decodeWapPdu". Selon Mark Blaszczyk, Google a intégré ce correctif à la mise à jour de sécurité Android d'octobre 2026, pour Android 14 à 17.
J'ai le sentiment qu'il n'y a aucune mention de ce correctif dans le bulletin de sécurité Android d'octobre 2026, et aucun identifiant CVE n'a été attribué à cette faille. Le commit porte pourtant la mention CVE_FIX.
Concernant le côté technique du correctif, le chercheur avait proposé à Google d'intégrer un mécanisme de vérification de la longueur, mais Google a fait un choix différent. Le correctif en question intercepte plus largement les exceptions et supprime le message "piégé" de la base de messages, ce qui élimine le risque de redémarrage en boucle. La cause du bug, elle, n’est pas corrigée : Android convertit toujours la taille annoncée sans la vérifier, mais l'erreur est correctement gérée.
Pour vous protéger de cette faille, il n'y a qu'un seul repère : installer les correctifs de sécurité d'octobre 2026 sur votre smartphone Android. Encore faut-il qu'ils soient disponibles.
Ajouter IT-Connect à mes
sources préférées
Cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Mon obsession depuis près de 15 ans ? Rendre l'administration système et la cybersécurité accessibles, que vous soyez junior ou confirmé. Plus qu'un métier, l'IT est pour moi une véritable passion. J’accompagne au quotidien les sysadmins et les professionnels de l’IT dans leur montée en compétences et leur veille technique.