Une seule commande, et votre Surface se transformait en presse-papier

Une seule petite ligne de code envoyée au mauvais endroit pouvait transformer un Surface Laptop en bloc de métal inutilisable. C’est sur cette faille que Microsoft a discrètement travaillé pendant trois mois, avant qu’elle ne soit rendue publique le 12 juin.
L’histoire commence de façon assez improbable. Jack Darcy, un chercheur en sécurité australien, a demandé à Microsoft Copilot (l’assistant IA intégré à Windows) de régler le rétroéclairage de son écran, rien de dingue donc. Bien gentil, Copilot écrit tout seul un script Python, l’exécute, et la paf, il rend l’ordinateur totalement inopérant. Plus de démarrage, plus d’accès au BIOS, rien, queudalle.
En creusant, Darcy comprend ce qui vient de se passer. Le script a écrit n’importe quoi dans le firmware du SAM, le Surface Aggregator Microcontroller, cette petite puce qui coordonne le matériel sur les Surface : alimentation, ventilateurs, clavier, capteurs. Une fois sa mémoire corrompue, la machine ne sait tout simplement plus démarrer.
Le problème de fond, c’est que cette puce n’avait aucun garde-fou. Elle acceptait n’importe quelle valeur en écriture sans vérifier si elle avait le moindre sens. Pire, les commandes de lecture et celles d’écriture partageaient la même numérotation, ce qui rendait toute exploration prudente impossible. "Vous ne pouvez littéralement pas scanner deux commandes qui se suivent sans une chance sur deux de tomber sur une commande d’écriture", résume Darcy.
Du coup, un seul paquet expédié pouvait griller la carte mère pour de bon. Aucune réparation logicielle, aucune réinitialisation d’usine, aucun accès USB de secours : direction le remplacement complet de la carte mère, soit plusieurs centaines d’euros.
Tout n’est pas si noir quand même. Pour déclencher la catastrophe, il fallait déjà disposer des droits administrateur sur la machine et avoir désactivé Secure Boot et Secure Core, les deux protections activées par défaut sur les Surface. Autrement dit, un parc d’entreprise géré normalement ne risquait rien, et les seules machines réellement exposées étaient celles des bidouilleurs tournant sous Linux, en configuration gaming allégée ou avec des pilotes maison.
Les modèles concernés vont du Surface Laptop 3 au Surface Laptop 6 et du Surface Book 1 au Surface Book 3. Les Surface Go semblent épargnés, et les versions ARM n’ont pas été testées.
Côté correctif, Microsoft a plutôt bien joué le jeu. Prévenu le 10 mars, l’éditeur a reconnu le défaut puis déployé des mises à jour de firmware via Windows Update dès le mois de mars, si bien que la grande majorité des appareils touchés sont désormais protégés. Darcy a récupéré un Surface tout neuf pour le dédommager.
Un point chiffonne quand même. Microsoft a refusé d’attribuer un CVE, l’identifiant officiel qui répertorie une faille de sécurité, estimant que le bug "n’atteignait pas le seuil" requis. Pour un défaut capable de tuer une machine de façon irréversible, l’argument laisse songeur.
Pour la suite, Redmond mise sur le langage Rust, réputé pour empêcher ce genre de débordements mémoire. Le firmware embarqué est en cours de réécriture intégrale, baptisée "Secure EC", tout comme une partie de l’UEFI sous le nom de "Project Patina".
Bref, un Copilot qui brique tout seul le PC sur lequel il tourne, voilà une démo involontaire dont Microsoft se serait bien passé.
Source :
The Register
Source : korben.info